Microsoft Windows Driver Development Kits
http://www.microsoft.com/ddk/
注意:
いつの間にやらDLできなくなってる。
CDを注文する以外に方法はない。しかも送料が$25。
古いバージョンについて
Microsoft Windows DDK Version Retirements
The Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK are no longer be available for purchase or download on this site.
WindowsDDK各種についてのスレ
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
NGNG583デフォルトの名無しさん
2008/08/06(水) 17:03:56 公開するなら当然
584デフォルトの名無しさん
2008/08/08(金) 15:32:56 WDKにはguidgen.exeついてないんだな
585デフォルトの名無しさん
2008/08/19(火) 18:57:39 ドライバ作成中に間違って、
>C:\WINDOWS\system32\drivers
フォルダを空っぽにしてしまいましたorz
ドライバが無いせいで内蔵CD-ROMを認識しなくなったのですが、
どうすれば良いでしょう?
WinXPインスコCDのイメージをハードディスクに落して、
setup.exeを実行して「Windows XP をインストールする」
を行いましたが、
「コンピュータの Windows のバージョンが CD に収録されているバージョンより新しいた
め、セットアップを続行できません。」エラーです。
ドライバディスクにもないので、Windows標準ドライバなんでしょうが、
インストロールできません(><;)
>C:\WINDOWS\system32\drivers
フォルダを空っぽにしてしまいましたorz
ドライバが無いせいで内蔵CD-ROMを認識しなくなったのですが、
どうすれば良いでしょう?
WinXPインスコCDのイメージをハードディスクに落して、
setup.exeを実行して「Windows XP をインストールする」
を行いましたが、
「コンピュータの Windows のバージョンが CD に収録されているバージョンより新しいた
め、セットアップを続行できません。」エラーです。
ドライバディスクにもないので、Windows標準ドライバなんでしょうが、
インストロールできません(><;)
586デフォルトの名無しさん
2008/08/19(火) 19:18:25 ドライバ作るくらいなら、PC起動しなくなるくらいよくある話し
1つ賢くなったということで、Windows再インストールしとけ
1つ賢くなったということで、Windows再インストールしとけ
587デフォルトの名無しさん
2008/10/22(水) 16:18:14 ここって質問してええんかな?
今までDDKでコンパイルしていたドライバが
WDKでコンパイルするとafxres.hが見つからないというエラーが出て、
それは#include "afxres.h"をフルパスで宣言すれば回避できるのは分かるんだが
普通にコンパイル時になめるパスを追加できればいいんじゃ?と
誰かそういうパスの追加方法知らない?
今までDDKでコンパイルしていたドライバが
WDKでコンパイルするとafxres.hが見つからないというエラーが出て、
それは#include "afxres.h"をフルパスで宣言すれば回避できるのは分かるんだが
普通にコンパイル時になめるパスを追加できればいいんじゃ?と
誰かそういうパスの追加方法知らない?
588デフォルトの名無しさん
2008/10/22(水) 16:21:37 >>587
sourcesファイルに、INCLUDESあるだろーからそこに足せばいいだけじゃね?
sourcesファイルに、INCLUDESあるだろーからそこに足せばいいだけじゃね?
589デフォルトの名無しさん
2008/10/22(水) 16:46:10590デフォルトの名無しさん
2008/10/22(水) 22:54:30 __halt のような組み込み関数を拡張子cppのファイルから呼び出そうとすると
'__halt': identifier not found
とコンパイルエラーになってしまいます。
拡張子cからはそのまま呼び出せるのですが、C++から直接呼び出すことは可能でしょうか?
方法があれば教えていただけると嬉しいです
ttp://www.hsjp.net/upload/index.html
up48941.zip (←例としてのソース)
バージョンは 6001.18001 です
'__halt': identifier not found
とコンパイルエラーになってしまいます。
拡張子cからはそのまま呼び出せるのですが、C++から直接呼び出すことは可能でしょうか?
方法があれば教えていただけると嬉しいです
ttp://www.hsjp.net/upload/index.html
up48941.zip (←例としてのソース)
バージョンは 6001.18001 です
591デフォルトの名無しさん
2008/10/31(金) 11:50:10 extern "C" {
#include
}
#include
}
592デフォルトの名無しさん
2008/11/03(月) 23:13:08 :環境
VC++2005pro WDK 6001.18001
:やりたいこと
サンプルソース UsbViewをコンパイルしたい。
(USBからシリアルコードをひっぱりたい)\WINDDK\6001.18001\src\usb\usbview
:やったこと
新規プロジェクト作成>Win32>Win32プロジェクト>空のプロジェクト
プロジェクト>プロパティ>リンカ>コマンドライン
CFGMGR32.LIB COMCTL32.LIB setupapi.lib を追加
ツール>オプション>プロジェクトおよびソリューション>VC++ディレクトリ
ディレクトリを表示するプロジェクト>インクルードファイル>
C:\WINDDK\6001.18001\inc\api C:\WINDDK\6001.18001\inc\crt を追加
ディレクトリを表示するプロジェクト>ライブラリファイル>
C:\WINDDK\6001.18001\lib\wlh を追加
:エラー
エラー
#include <version.h> が見つかりません。
警告が200以上、、、。
warning C4133: '関数' : 'CHAR [数字]' と 'LPCWSTR' の間で型に互換性がありません。
:わからないこと
エラーをなくしたいのと、恐らく間違っているであろう開発環境を正しく設定したい、、、orz
:参考URL
http://slashdot.jp/~fslasht/journal/391690
VC++2005pro WDK 6001.18001
:やりたいこと
サンプルソース UsbViewをコンパイルしたい。
(USBからシリアルコードをひっぱりたい)\WINDDK\6001.18001\src\usb\usbview
:やったこと
新規プロジェクト作成>Win32>Win32プロジェクト>空のプロジェクト
プロジェクト>プロパティ>リンカ>コマンドライン
CFGMGR32.LIB COMCTL32.LIB setupapi.lib を追加
ツール>オプション>プロジェクトおよびソリューション>VC++ディレクトリ
ディレクトリを表示するプロジェクト>インクルードファイル>
C:\WINDDK\6001.18001\inc\api C:\WINDDK\6001.18001\inc\crt を追加
ディレクトリを表示するプロジェクト>ライブラリファイル>
C:\WINDDK\6001.18001\lib\wlh を追加
:エラー
エラー
#include <version.h> が見つかりません。
警告が200以上、、、。
warning C4133: '関数' : 'CHAR [数字]' と 'LPCWSTR' の間で型に互換性がありません。
:わからないこと
エラーをなくしたいのと、恐らく間違っているであろう開発環境を正しく設定したい、、、orz
:参考URL
http://slashdot.jp/~fslasht/journal/391690
593デフォルトの名無しさん
2008/11/04(火) 00:02:56 >>592
プログラム>Windows Driver Kits>WDK 6001.18001>Build Environments>好きな環境選べ
コンソールが開いたら
CD \WINDDK\6001.18001\src\usb\usbview
nmake
プログラム>Windows Driver Kits>WDK 6001.18001>Build Environments>好きな環境選べ
コンソールが開いたら
CD \WINDDK\6001.18001\src\usb\usbview
nmake
594デフォルトの名無しさん
2008/11/04(火) 17:43:03595592
2008/11/04(火) 22:45:51 質問:
1.
○○.sys のドライバをリソースとして実行ファイルに組み込むことは可能ですか?
2.
1が可能な場合
FindResource関数にリソースタイプ(RT_○○)の正しい値がわからない。
1について わからないところ:
リソースファイル(○○.sys)をCreateService(にかわるもの)にわたしたいが、なにか適当な関数が見つからない。
2について わからないところ:
リソースの読み込みは
HRSRC hres = FindResource( GetModuleHandle(NULL), in_path, RT_STRING );
HGLOBAL hmem = LoadResource( GetModuleHandle(NULL), hres );
char *lplock = static_cast< char * >( LockResource( hmem ) );
でやっています。
FindResourceのリソースタイプ(RT_STRING)があっているのか不安。
1.
○○.sys のドライバをリソースとして実行ファイルに組み込むことは可能ですか?
2.
1が可能な場合
FindResource関数にリソースタイプ(RT_○○)の正しい値がわからない。
1について わからないところ:
リソースファイル(○○.sys)をCreateService(にかわるもの)にわたしたいが、なにか適当な関数が見つからない。
2について わからないところ:
リソースの読み込みは
HRSRC hres = FindResource( GetModuleHandle(NULL), in_path, RT_STRING );
HGLOBAL hmem = LoadResource( GetModuleHandle(NULL), hres );
char *lplock = static_cast< char * >( LockResource( hmem ) );
でやっています。
FindResourceのリソースタイプ(RT_STRING)があっているのか不安。
596デフォルトの名無しさん
2008/11/04(火) 23:30:57 RT_STRINGとしてリソースにしたなら、RT_STRINGでFindResourceするしかないだろ。
どっちかというとRT_RCDATAのほうがふさわしいと思う。
どっちかというとRT_RCDATAのほうがふさわしいと思う。
597592
2008/11/04(火) 23:47:34 >>596
さっそくのレスありがとうございます。
RT_RCDATA を使って読み込んでみます。
今VC++2005を使っているのですが、
ソリューションエクスプローラー>○○.sysをクリック>
ファイルのプロパティ>ファイルの種類をRCファイルに設定で大丈夫でしょうか?
さっそくのレスありがとうございます。
RT_RCDATA を使って読み込んでみます。
今VC++2005を使っているのですが、
ソリューションエクスプローラー>○○.sysをクリック>
ファイルのプロパティ>ファイルの種類をRCファイルに設定で大丈夫でしょうか?
598デフォルトの名無しさん
2008/11/05(水) 03:02:30 え、もしかしてリソースって扱ったことない?
599592
2008/11/05(水) 03:31:58 >>597
こんな時間にレスサンクスです。
リソース扱ったことないです、、、orz。
char *lplock = static_cast< char * >( LockResource( hmem ) );
から相変わらず、CreateServiceに値を渡す方法がわかりません。
(CreateServiceに代わる関数が見つかりません、、、orz)
こんな時間にレスサンクスです。
リソース扱ったことないです、、、orz。
char *lplock = static_cast< char * >( LockResource( hmem ) );
から相変わらず、CreateServiceに値を渡す方法がわかりません。
(CreateServiceに代わる関数が見つかりません、、、orz)
601592
2008/11/05(水) 12:44:20602592
2008/11/08(土) 20:14:33 質問:STLのvectorが使いたい。
環境:
MFC(VC++2005Pro)で現在開発しています。
プロジェクト>プロパティ>構成プロパティ>C/C++>全般
追加のインクルードディレクトリで以下を設定しています。
C:\WINDDK\6001.18001\inc\crt
C:\WINDDK\6001.18001\inc\api
エラー:
#include <vector>を行うと、
c:\program files\microsoft visual studio 8\vc\include\iosfwd(34) : error C2146: 構文エラー : ';' が、識別子 'fpos_t' の前に必要です。
以下、とんでもない数のエラーが出ます。
解決のため、なにかしらヒントなりいただければと思います。
環境:
MFC(VC++2005Pro)で現在開発しています。
プロジェクト>プロパティ>構成プロパティ>C/C++>全般
追加のインクルードディレクトリで以下を設定しています。
C:\WINDDK\6001.18001\inc\crt
C:\WINDDK\6001.18001\inc\api
エラー:
#include <vector>を行うと、
c:\program files\microsoft visual studio 8\vc\include\iosfwd(34) : error C2146: 構文エラー : ';' が、識別子 'fpos_t' の前に必要です。
以下、とんでもない数のエラーが出ます。
解決のため、なにかしらヒントなりいただければと思います。
603デフォルトの名無しさん
2008/11/08(土) 23:26:18 そろそろつまみ出せ!!
604デフォルトの名無しさん
2008/11/09(日) 10:22:55 スレ違い
606592
2008/11/09(日) 20:41:08 すんません、出直してきます。
607デフォルトの名無しさん
2008/11/19(水) 11:47:28 先生方、(フィルタ)ドライバ側からレジストリキー読んだり、
書き込んだりする関数についてサイト、書籍知ってたら教えてください。
ttp://www5a.biglobe.ne.jp/~crab/winddk/kernel/index/index01.html
とりあえず↑を見つけたのだがよくわかんね。
書き込んだりする関数についてサイト、書籍知ってたら教えてください。
ttp://www5a.biglobe.ne.jp/~crab/winddk/kernel/index/index01.html
とりあえず↑を見つけたのだがよくわかんね。
610デフォルトの名無しさん
2008/11/21(金) 18:02:32 ZwOpenKey使いたいんですが、失敗します。
RtlInitUnicodeString( &RegPath, REG_KEY_PATH );
InitializeObjectAttributes( &Attr, &RegPath, OBJ_CASE_INSENSITIVE, NULL, NULL );
恐らく、↑でパスの指定ミスってると思うんですが、
#define REG_PATH L"\\HEKY_CURRENT_USER\\Software\\TEST_01"
ってやったらダメだったのですが、正しくはどのように書くんでしょうか?
RtlInitUnicodeString( &RegPath, REG_KEY_PATH );
InitializeObjectAttributes( &Attr, &RegPath, OBJ_CASE_INSENSITIVE, NULL, NULL );
恐らく、↑でパスの指定ミスってると思うんですが、
#define REG_PATH L"\\HEKY_CURRENT_USER\\Software\\TEST_01"
ってやったらダメだったのですが、正しくはどのように書くんでしょうか?
>>610
書かないのが、正しい書き方。
書かないのが、正しい書き方。
612610
2008/11/21(金) 18:33:45 レスアリガタス。
ZwEnumerateValueKey使ってキーの値を取得したいんですが、
その場合、キーの指定っていうのはどうやるんすか?
ZwEnumerateKeyで列挙してから使うんでつか?
ZwEnumerateValueKey使ってキーの値を取得したいんですが、
その場合、キーの指定っていうのはどうやるんすか?
ZwEnumerateKeyで列挙してから使うんでつか?
614610
2008/11/21(金) 21:29:45 >>613
レスアリガタス。
頭悪いんでまとめると、キーを指定して値とりたい場合っつーのは、
ZwOpenKey使わないで、ZwCreateKey使えでFA?
ZwCreateKeyの第2引数は、\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK?
>kernelModeで列挙っていうのは、どうも嫌なモノを作ろうとしているように見える。
ZwEnumerateValueKey使うのは、レジストリのキーの値を取得する関数を他にシラネからです。
レジストリに書き込んである値はインストールパスとインストールした日付です。
Windowsアプリで言う、SHRegGetUSValue関数みたいなのがあればいいのだが、
見つからなかったっす。
レスアリガタス。
頭悪いんでまとめると、キーを指定して値とりたい場合っつーのは、
ZwOpenKey使わないで、ZwCreateKey使えでFA?
ZwCreateKeyの第2引数は、\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK?
>kernelModeで列挙っていうのは、どうも嫌なモノを作ろうとしているように見える。
ZwEnumerateValueKey使うのは、レジストリのキーの値を取得する関数を他にシラネからです。
レジストリに書き込んである値はインストールパスとインストールした日付です。
Windowsアプリで言う、SHRegGetUSValue関数みたいなのがあればいいのだが、
見つからなかったっす。
615610
2008/11/21(金) 21:35:03 スマソ。間違えた。
>>614
間違い
>ZwCreateKeyの第2引数は、\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK?
訂正
ZwCreateKeyの第2引数は、KEY_QUERY_VALUE指定して、InitializeObjectAttributes関数でのパスの指定で
\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK?
俺、頭マヂ悪い
>>614
間違い
>ZwCreateKeyの第2引数は、\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK?
訂正
ZwCreateKeyの第2引数は、KEY_QUERY_VALUE指定して、InitializeObjectAttributes関数でのパスの指定で
\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK?
俺、頭マヂ悪い
616デフォルトの名無しさん
2008/11/21(金) 22:14:40 まずはDDKのサンプルソースを読んでからにしろ。
618デフォルトの名無しさん
2008/11/22(土) 10:12:33 >HEKY_CURRENT_USER
いるわけないやん・・・・。
いるわけないやん・・・・。
619610
2008/11/22(土) 11:01:23 レス3つも北。愛が伝わってきた。
厨房らしくサンプルソースにグレップかけて、いろいろ見てみた。
"\\Registry\\Machine\\Software\\TEST_01"
の指定でとりあえず、HKEY_LOCAL_MACHINE以下にあるキーは取得できそう。
サンプルにHKEY_CURRENT_USER以下のレジストリを扱う処理がなかったと
思ったんけど、探しきれていない?
"\\Registry\\User\CurrentUser\\ こんな感じだと思うんだけど、、、。
うまく開けない、、、。
教えてエロい人。
厨房らしくサンプルソースにグレップかけて、いろいろ見てみた。
"\\Registry\\Machine\\Software\\TEST_01"
の指定でとりあえず、HKEY_LOCAL_MACHINE以下にあるキーは取得できそう。
サンプルにHKEY_CURRENT_USER以下のレジストリを扱う処理がなかったと
思ったんけど、探しきれていない?
"\\Registry\\User\CurrentUser\\ こんな感じだと思うんだけど、、、。
うまく開けない、、、。
教えてエロい人。
620デフォルトの名無しさん
2008/11/22(土) 11:20:58 current userって誰を期待している?
ここまで書いてもわかんないならあきらめろ。
ここまで書いてもわかんないならあきらめろ。
621デフォルトの名無しさん
2008/11/22(土) 11:23:36 Win32APIからやれ
622610
2008/11/23(日) 13:03:28 ツンデレスアリガタス。
とりあえず、HKEY_LOCAL_MACHINE以下の可変長データ取得できるようになったお。
HKEY_CURRENT_USERは無理っぽいお。
みなさまの暖かい助言により、なんとか目的が達成できそうです。
チラ裏スマソ。
とりあえず、HKEY_LOCAL_MACHINE以下の可変長データ取得できるようになったお。
HKEY_CURRENT_USERは無理っぽいお。
みなさまの暖かい助言により、なんとか目的が達成できそうです。
チラ裏スマソ。
623デフォルトの名無しさん
2008/11/24(月) 20:45:11624デフォルトの名無しさん
2009/02/28(土) 21:14:21 ハードウェアidや互換性idをデバイスマネージャで見ると
PCI\VEN_102C&DEV_00E0&REV_04
PCI\VEN_102C&DEV_00E0
PCI\VEN_102C&DEV_00E0&CC_030000
PCI\VEN_102C&CC_030000
というふうに複数あったりしますが、
SetupDiGetDeviceRegistryPropertyで取得するとき
どれが取れるかはどういう風に決まってるんでしょうか?
PCI\VEN_102C&DEV_00E0&REV_04
PCI\VEN_102C&DEV_00E0
PCI\VEN_102C&DEV_00E0&CC_030000
PCI\VEN_102C&CC_030000
というふうに複数あったりしますが、
SetupDiGetDeviceRegistryPropertyで取得するとき
どれが取れるかはどういう風に決まってるんでしょうか?
625デフォルトの名無しさん
2009/03/01(日) 00:02:32 デバイスマネージャで見れてるものが取得されるに決ってるじゃん
626デフォルトの名無しさん
2009/03/02(月) 04:18:14 >>624
SPDRP_HARDWAREIDのことを言っているのであればREG_MULTI_SZなので全部取れるはず。
SPDRP_HARDWAREIDのことを言っているのであればREG_MULTI_SZなので全部取れるはず。
627デフォルトの名無しさん
2009/03/29(日) 13:05:56628デフォルトの名無しさん
2009/04/08(水) 02:05:35 スレ違い
629デフォルトの名無しさん
2009/05/04(月) 23:11:02 テレビーチューナーのドライバをx64用に作るのは難しい?
ペンギンなら解析の情報はここにあるんだけど。
ttp://linux.paken.org/index.php?CX23416GYC-STVLP%A4%CE%B2%F2%C0%CF
ペンギンなら解析の情報はここにあるんだけど。
ttp://linux.paken.org/index.php?CX23416GYC-STVLP%A4%CE%B2%F2%C0%CF
630デフォルトの名無しさん
2009/06/12(金) 10:09:22 WDK のサンプル usbview を参考に USB デバイスを列挙するサンプルを書いてます。
WDK は C:\WinDDK\6001.18002 にインストールしています。
ttp://support.microsoft.com/default.aspx?scid=kb;JA;259695
を元に、SetupDiEnumDeviceInterfaces と SetupDiGetDeviceInterfaceDetail
に変更しようとしているのですが、この場合は SetupDiGetClassDevs の
第一パラメータにクラス GUID を指定しないといけないようです。
そこで、enum.c にあるように「(LPGUID)&GUID_CLASS_USB_HOST_CONTROLLER」
を指定してみたのですが、リンクエラーになります。 GREP してたどってみると、
wdf.lib に実体があるようなので、C:\WinDDK\6001.18002\lib\wnet\i386 を
ライブラリディレクトリに追加して
#pragma comment(lib, "wdf.lib")
を書き加えてみましたが、さらにたくさんのリンクエラーが出るようになりました
(wdf.lib の未解決シンボル)。
どのように設定すればリンクできるのでしょうか。
ググっても情報が少ないので参ります…。
WDK は C:\WinDDK\6001.18002 にインストールしています。
ttp://support.microsoft.com/default.aspx?scid=kb;JA;259695
を元に、SetupDiEnumDeviceInterfaces と SetupDiGetDeviceInterfaceDetail
に変更しようとしているのですが、この場合は SetupDiGetClassDevs の
第一パラメータにクラス GUID を指定しないといけないようです。
そこで、enum.c にあるように「(LPGUID)&GUID_CLASS_USB_HOST_CONTROLLER」
を指定してみたのですが、リンクエラーになります。 GREP してたどってみると、
wdf.lib に実体があるようなので、C:\WinDDK\6001.18002\lib\wnet\i386 を
ライブラリディレクトリに追加して
#pragma comment(lib, "wdf.lib")
を書き加えてみましたが、さらにたくさんのリンクエラーが出るようになりました
(wdf.lib の未解決シンボル)。
どのように設定すればリンクできるのでしょうか。
ググっても情報が少ないので参ります…。
631630
2009/06/12(金) 10:31:10 忘れてました。
コンパイラは Visual C++ 2005 です。
とりあえずコンソールアプリとして作っています。
コンパイラは Visual C++ 2005 です。
とりあえずコンソールアプリとして作っています。
632デフォルトの名無しさん
2009/06/12(金) 11:25:35 リンクエラーなら、setupapi.libだろ
633デフォルトの名無しさん
2009/06/12(金) 11:44:47 >>632
どうも。
#pragma comment(lib, "setupapi.lib")
は追加してあって、GUID_CLASS_USB_HOST_CONTROLLER
を使わない SetupDi のサンプルはビルドできています。
エラーに出てくるシンボルを grep して、片っ端から追加してるんですが、
こんな方法しかないんでしょうか…。
どうも。
#pragma comment(lib, "setupapi.lib")
は追加してあって、GUID_CLASS_USB_HOST_CONTROLLER
を使わない SetupDi のサンプルはビルドできています。
エラーに出てくるシンボルを grep して、片っ端から追加してるんですが、
こんな方法しかないんでしょうか…。
634デフォルトの名無しさん
2009/06/12(金) 12:01:27 なんでGUID_CLASS_USB_HOST_CONTROLLERを追加するとリンクエラーになるわけ?
コンパイルエラーだろ?
ライブラリじゃなくて、インクルードファイル探せよ
コンパイルエラーだろ?
ライブラリじゃなくて、インクルードファイル探せよ
635デフォルトの名無しさん
2009/06/12(金) 12:02:33 あ、wdf.libいらないから消しとけ
636630
2009/06/12(金) 12:20:24 それがですねえ、追加してあるんですよ。
今プリプロセッサ関係はこんな感じ。
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <setupapi.h>
#include <devguid.h>
#include <regstr.h>
#include <usbiodef.h>
#pragma comment(lib, "setupapi.lib")
これでビルドすると、
エラー 4 error LNK2001: 外部シンボル "_GUID_DEVINTERFACE_USB_DEVICE" は未解決です。 UsbDevTest.obj
って怒られます。
それで wdf.lib 追加すると芋づる式に。
今プリプロセッサ関係はこんな感じ。
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <setupapi.h>
#include <devguid.h>
#include <regstr.h>
#include <usbiodef.h>
#pragma comment(lib, "setupapi.lib")
これでビルドすると、
エラー 4 error LNK2001: 外部シンボル "_GUID_DEVINTERFACE_USB_DEVICE" は未解決です。 UsbDevTest.obj
って怒られます。
それで wdf.lib 追加すると芋づる式に。
637デフォルトの名無しさん
2009/06/12(金) 13:01:16 それなら、devguid.hじゃなくて、initguid.hをインクルードするように
638630
2009/06/12(金) 13:37:54 通りました、ありがとうございます!
そういや setupapi.lib って、パス追加してないのに何でリンクできるんだろうと思ったら、
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib にもいたんですね。
はあ、やっとスタートラインにたどり着きました…。
しかもデバイス取れてねぇ…。 z_/o
そういや setupapi.lib って、パス追加してないのに何でリンクできるんだろうと思ったら、
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib にもいたんですね。
はあ、やっとスタートラインにたどり着きました…。
しかもデバイス取れてねぇ…。 z_/o
639デフォルトの名無しさん
2009/06/13(土) 07:11:14 ビルドができないとか言っている奴はなんでVC++でやろうとするかねぇ。
どうせデバッグできないんだからCUIでやればいいのに。
どうせデバッグできないんだからCUIでやればいいのに。
640デフォルトの名無しさん
2009/06/14(日) 17:41:50 知らないやつはだまってろ
641630
2009/06/15(月) 14:42:22 結局私の想像以上に面倒なようでしたので、
ttp://www.usefullcode.net/2007/02/usbusb.html
のサイトのサンプルを参考にさせてもらっています。
それで、目的の USB メモリを探してアクセスしたいのですが、
アクセス用の名前をどうやって取得するかで躓いています。
WMI の CIM_LogicalDevice クラスを使えば「\\.\PHYSICALDRIVE?」
の形で取得ができるのですが、Setup Di API と共通する
情報が得られません。私が見つけられないだけだと思うのですが…。
WMI 使わなくてもアクセス用の名前は得られるのでしょうか。
アドバイスいただけると幸いです。
>>639
一応マイクロソフトのサンプルや、上記サイトのコードなどは
ブレークかけて見たりできてますけど、そういう意味ではなくてでしょうか?
ttp://www.usefullcode.net/2007/02/usbusb.html
のサイトのサンプルを参考にさせてもらっています。
それで、目的の USB メモリを探してアクセスしたいのですが、
アクセス用の名前をどうやって取得するかで躓いています。
WMI の CIM_LogicalDevice クラスを使えば「\\.\PHYSICALDRIVE?」
の形で取得ができるのですが、Setup Di API と共通する
情報が得られません。私が見つけられないだけだと思うのですが…。
WMI 使わなくてもアクセス用の名前は得られるのでしょうか。
アドバイスいただけると幸いです。
>>639
一応マイクロソフトのサンプルや、上記サイトのコードなどは
ブレークかけて見たりできてますけど、そういう意味ではなくてでしょうか?
642630
2009/06/15(月) 16:11:55 うーん、WMI から得られる情報で、PNPDeviceID の中にシリアル番号が
含まれてるっぽいですね。とりあえずこれが一致するかみて、実際にデバイスを
開いて中身を確かめるって感じでいけばいいかな…。
含まれてるっぽいですね。とりあえずこれが一致するかみて、実際にデバイスを
開いて中身を確かめるって感じでいけばいいかな…。
643デフォルトの名無しさん
2009/06/15(月) 21:01:15 SetupDiEnumDeviceInterfaces・SetupDiGetInterfaceDeviceDetailで
PSP_DEVICE_INTERFACE_DETAIL_DATAを取得して
それのDevicePathでファイル開いて
DeviceIoControlでIOCTL_STORAGE_GET_DEVICE_NUMBERでとった番号と
USBの物理ディスクの番号を比較したらいい
PSP_DEVICE_INTERFACE_DETAIL_DATAを取得して
それのDevicePathでファイル開いて
DeviceIoControlでIOCTL_STORAGE_GET_DEVICE_NUMBERでとった番号と
USBの物理ディスクの番号を比較したらいい
644630
2009/06/16(火) 11:59:08 どうもありがとうございます。でもこれって GUID_DEVINTERFACE_DISK を指定して
列挙したときの DevicePathじゃないと取れないのでは。
USB のシリアル番号が欲しいんで、USBview のように、
GUID_CLASS_USB_HOST_CONTROLLER からたどって列挙したデバイス情報から
USBの物理ディスクの番号を知りたいんです。
何かボケてるでしょうか。
列挙したときの DevicePathじゃないと取れないのでは。
USB のシリアル番号が欲しいんで、USBview のように、
GUID_CLASS_USB_HOST_CONTROLLER からたどって列挙したデバイス情報から
USBの物理ディスクの番号を知りたいんです。
何かボケてるでしょうか。
645デフォルトの名無しさん
2009/06/16(火) 13:09:42 >>644
何したいのかいまいち見えてこないけど
最終的にUSBメモリのシリアル番号を取れればいいわけ?
USBViewと同じ方法でインターフェースデスクリプタ読んで、
それがマスストレージクラスになってるUSBデバイスのシリアル番号を取得じゃダメ?
何したいのかいまいち見えてこないけど
最終的にUSBメモリのシリアル番号を取れればいいわけ?
USBViewと同じ方法でインターフェースデスクリプタ読んで、
それがマスストレージクラスになってるUSBデバイスのシリアル番号を取得じゃダメ?
646630
2009/06/16(火) 13:36:43 スミマセンわかりにくくて。
USB メモリにプロテクトドングルを兼ねさせるということで、
(1) シリアル番号はあらかじめわかっている
(2) USB デバイスを列挙してシリアル番号を探す
(3) そのシリアル番号のドライブは?←ここが問題
と、大雑把にはこうです。
で、あれこれ試した結果、苦肉の策が >>642 だったんですが、
もっとスマートな方法があればと思って四苦八苦してます。
USB メモリにプロテクトドングルを兼ねさせるということで、
(1) シリアル番号はあらかじめわかっている
(2) USB デバイスを列挙してシリアル番号を探す
(3) そのシリアル番号のドライブは?←ここが問題
と、大雑把にはこうです。
で、あれこれ試した結果、苦肉の策が >>642 だったんですが、
もっとスマートな方法があればと思って四苦八苦してます。
647デフォルトの名無しさん
2009/08/11(火) 13:13:47 おお、いつの間にかWDK 7.0.0がダウンロードできるようになってるな。
648デフォルトの名無しさん
2009/08/13(木) 20:21:51 ドライバ作成の初心者です。
フィルタドライバで、別プロセスが作成(書き込み)したファイルを監視し
そのパスをユーザモード側(自分のプログラム)に通知を行うドライバを作成したいと思います。
(アンチウイルスソフトの常駐監視機能のような機能)
このあたりの勉強を行いたいのですが、参考になる書籍や、サンプルソースなどご存知のかたが
いましたら教えていただけないでしょうか?(書籍を見たところほとんどがUSBドライバなどの本ばかりでした)
現状はWDKのサンプルソース(src\filesys\配下)やネットで調べていますが、なにぶん始めての領域で
どこからスタートすれば良いのかも悩んでいるところです。
WDKのサンプルで一番参考になりそうソースを教えていただければ大変参考になります。
フィルタドライバで、別プロセスが作成(書き込み)したファイルを監視し
そのパスをユーザモード側(自分のプログラム)に通知を行うドライバを作成したいと思います。
(アンチウイルスソフトの常駐監視機能のような機能)
このあたりの勉強を行いたいのですが、参考になる書籍や、サンプルソースなどご存知のかたが
いましたら教えていただけないでしょうか?(書籍を見たところほとんどがUSBドライバなどの本ばかりでした)
現状はWDKのサンプルソース(src\filesys\配下)やネットで調べていますが、なにぶん始めての領域で
どこからスタートすれば良いのかも悩んでいるところです。
WDKのサンプルで一番参考になりそうソースを教えていただければ大変参考になります。
649デフォルトの名無しさん
2009/08/15(土) 01:14:03 USBデバイスをPCIデバイスに擬似的に変換(又はエミュレート)する方法ってあるのでしょうか?
650デフォルトの名無しさん
2009/08/15(土) 17:28:58 そういえば、実USBデバイスをエミュレートする疑似USBデバイスソフトあれば
デバッグ楽かもしれん、と思いつつ作りかたが分からずに挫折したなあ昔。
デバッグ楽かもしれん、と思いつつ作りかたが分からずに挫折したなあ昔。
651デフォルトの名無しさん
2009/08/16(日) 07:34:35 >>648
書籍といったら「Windows NT ファイルシステム詳説」くらいしか知らないけど絶版。
原書ならUSのAmazonで買えるようだが。
原書のサンプルは以下のExamples以下よりダウンロード可能。
ttp://oreilly.com/catalog/9781565922495/
あとはntifsとかでぐぐったらいくつか出てくるんじゃないかな。フリー版IFSとか
ttp://www.acc.umu.se/~bosse/
書籍といったら「Windows NT ファイルシステム詳説」くらいしか知らないけど絶版。
原書ならUSのAmazonで買えるようだが。
原書のサンプルは以下のExamples以下よりダウンロード可能。
ttp://oreilly.com/catalog/9781565922495/
あとはntifsとかでぐぐったらいくつか出てくるんじゃないかな。フリー版IFSとか
ttp://www.acc.umu.se/~bosse/
652デフォルトの名無しさん
2009/08/17(月) 11:01:27 Windows Driver Kit Version 7.0.0
http://www.microsoft.com/downloads/details.aspx?FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00&displaylang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00&displaylang=en
653648
2009/08/20(木) 17:33:43 >> 651
返信遅れました。申し訳ありません。
”Windows NT ファイルシステム詳説”の日本語版は、なぜか会社にありました。
本はあれども、知識を持っている人がいないので1から勉強してみたいとおもいます。
また、FileMonの昔のソースを見つけましたので、これのドライバの部分がとても参考になりそうです。
ご教授ありがとうございました。
返信遅れました。申し訳ありません。
”Windows NT ファイルシステム詳説”の日本語版は、なぜか会社にありました。
本はあれども、知識を持っている人がいないので1から勉強してみたいとおもいます。
また、FileMonの昔のソースを見つけましたので、これのドライバの部分がとても参考になりそうです。
ご教授ありがとうございました。
654デフォルトの名無しさん
2009/09/01(火) 12:36:33 KMDFでドライバを作成した場合、WdfCoInstaller01009.dllの再配布は可能でしょうか?
655デフォルトの名無しさん
2009/09/08(火) 00:40:32 WDMで、LPCバスに接続されている機器をI/Oポート経由でアクセスしたいのですが、
ポートのマッピングの方法を教えてください。
HalTranslateBusAddressの引数にLPCバスタイプが存在しないので、どうした良いものなのか。
よろしくお願いします。
ポートのマッピングの方法を教えてください。
HalTranslateBusAddressの引数にLPCバスタイプが存在しないので、どうした良いものなのか。
よろしくお願いします。
656デフォルトの名無しさん
2009/09/09(水) 19:56:14 LPCはソフトウェア的にはISA互換と考えていいはず。
それはともかくHalTranslateBusAddressを使いたい理由が不明。
それはともかくHalTranslateBusAddressを使いたい理由が不明。
657655
2009/09/14(月) 13:47:28658デフォルトの名無しさん
2009/09/14(月) 13:56:57 yes you can
659亀
2009/09/30(水) 00:13:02 >657
I/Oのみ使用するISA Bus(X-Bus)ボードなら
src/general/portio
のサンプルがほぼそのまま使えるよ!
どんなリソースが、どこから、どれだけボードに割り当てられたかは
IRP_MN_START_DEVICEでわかるよ!
ボードがなくてもドライバのインストールができる(試験用ドライバ
では物理リソースにアクセスしないようしておきます)ので、
クラッシュしても中田氏しても大丈夫なPCを用意してWinDbgで
ドライバや制御アプリの動きをみてみるといいよ!
ハ_ハ
('(゚∀゚∩ できるよ!
ヽ 〈
ヽヽ_)
ここまで書いて「いまさらISAボードの新製はねぇか?」と思ったが、
せっかく書いたのでこのまま投稿させていただきます。
I/Oのみ使用するISA Bus(X-Bus)ボードなら
src/general/portio
のサンプルがほぼそのまま使えるよ!
どんなリソースが、どこから、どれだけボードに割り当てられたかは
IRP_MN_START_DEVICEでわかるよ!
ボードがなくてもドライバのインストールができる(試験用ドライバ
では物理リソースにアクセスしないようしておきます)ので、
クラッシュしても中田氏しても大丈夫なPCを用意してWinDbgで
ドライバや制御アプリの動きをみてみるといいよ!
ハ_ハ
('(゚∀゚∩ できるよ!
ヽ 〈
ヽヽ_)
ここまで書いて「いまさらISAボードの新製はねぇか?」と思ったが、
せっかく書いたのでこのまま投稿させていただきます。
660デフォルトの名無しさん
2009/09/30(水) 22:54:06 LPC deviceだとISAPNP対応するかACPIのDSDTに記述がないとOSが認識できないし
リソースも割り当てられないからIRP_MN_START_DEVICEは飛んでこないよ。
リソースも割り当てられないからIRP_MN_START_DEVICEは飛んでこないよ。
662デフォルトの名無しさん
2009/10/19(月) 20:28:03 2003 SP1 DDK無くなったっぽいな
663デフォルトの名無しさん
2009/12/27(日) 07:27:47664デフォルトの名無しさん
2009/12/27(日) 09:09:31 なんということだ
665デフォルトの名無しさん
2010/02/19(金) 07:24:09 DDKの選びかたについて質問があります。
VISTA以前はDDKが主流だったそうです。
しかし現在、WDKがDDKに置き換わっているようです。
私のPCはOSがWindowsXPなのですが、旧来のDDKをなんとかして手に入れてるべきなのか
それともWDKを入れればよいのかどちらでしょうか?
とりあえず、どんなOSも最新のWDKを入れて開発しておけばいいという考え方は間違っていますでしょうか?
回答よろしくお願いいたします。
VISTA以前はDDKが主流だったそうです。
しかし現在、WDKがDDKに置き換わっているようです。
私のPCはOSがWindowsXPなのですが、旧来のDDKをなんとかして手に入れてるべきなのか
それともWDKを入れればよいのかどちらでしょうか?
とりあえず、どんなOSも最新のWDKを入れて開発しておけばいいという考え方は間違っていますでしょうか?
回答よろしくお願いいたします。
666デフォルトの名無しさん
2010/02/19(金) 08:20:37 ok
667デフォルトの名無しさん
2010/02/19(金) 09:29:15 ここまで無駄に長文だと読んだだけで腹が立つなw
XP以降がターゲットの場合DDKとWDKどっちがいいの?の、たったこれだけの内容に何行使うんだよ
XP以降がターゲットの場合DDKとWDKどっちがいいの?の、たったこれだけの内容に何行使うんだよ
668デフォルトの名無しさん
2010/02/19(金) 09:47:20 XP以降がターゲットとは言ってないんじゃないか?
最近のlink.exeは/VXDオプションをサポートしないしターゲットによってはDDKが必要
最近のlink.exeは/VXDオプションをサポートしないしターゲットによってはDDKが必要
669デフォルトの名無しさん
2010/02/19(金) 12:45:44 >>668
ということは開発するものによってはDDKを使う必要もあるのでしょうか?
XPのできるだけ深いレベルでのデバイスドライバを開発したいのですが、
一般的に言って、そういった開発でWDKを用いても大丈夫といえそうですか?
ということは開発するものによってはDDKを使う必要もあるのでしょうか?
XPのできるだけ深いレベルでのデバイスドライバを開発したいのですが、
一般的に言って、そういった開発でWDKを用いても大丈夫といえそうですか?
670デフォルトの名無しさん
2010/02/19(金) 13:20:29 95/98/ME:vxd
98/ME/2K/XP/Vista/7:WDM
2K/XP/Vista/7:KMDF
XP/Vista/7:UMDF
DDK:vxd/wdm
WDK:wdm/kmdf/umdf
テキトーだけどこんな感じ
98/ME/2K/XP/Vista/7:WDM
2K/XP/Vista/7:KMDF
XP/Vista/7:UMDF
DDK:vxd/wdm
WDK:wdm/kmdf/umdf
テキトーだけどこんな感じ
671デフォルトの名無しさん
2010/02/19(金) 15:50:26 >>668
ググりゃ即答えが出るような事をわざわざ長文で聞くような低レベルな奴が
非NT系OSをサポートする気のわけ無いだろうよw
それにあの分量書いてvdxサポートの事を抜かしたと言うなら、本物の馬鹿だから何教えても無駄と言う帰結
ググりゃ即答えが出るような事をわざわざ長文で聞くような低レベルな奴が
非NT系OSをサポートする気のわけ無いだろうよw
それにあの分量書いてvdxサポートの事を抜かしたと言うなら、本物の馬鹿だから何教えても無駄と言う帰結
672デフォルトの名無しさん
2010/02/19(金) 18:14:34 単に、あるときからDDKはWDKに名称変更しましたというだけのこと。
673デフォルトの名無しさん
2010/02/20(土) 01:29:22 >>672
ちげぇ
ちげぇ
674デフォルトの名無しさん
2010/02/20(土) 06:33:33 >>671
何怒ってんの?涙拭けよ
何怒ってんの?涙拭けよ
676デフォルトの名無しさん
2010/02/28(日) 06:23:42 IMM32のIMEを開発するにはDDKが必要。
677デフォルトの名無しさん
2010/10/18(月) 19:19:03 ホッシュ!
678デフォルトの名無しさん
2010/10/29(金) 18:58:31 デバイスドライバの勉強したいんですけど、何から始めたらいいですかね?
サンプルコードみてもチンプンカンプンです
サンプルコードみてもチンプンカンプンです
679デフォルトの名無しさん
2010/12/04(土) 20:06:14 http://www.microsoft.com/japan/whdc/devtools/wdk/wdkpkg.mspx
2000 DDKまでconnectに置いてあるんだな
2000 DDKまでconnectに置いてあるんだな
680デフォルトの名無しさん
2011/03/15(火) 16:48:30.18 すみません、質問ですorz
Win32のアプリと32bitドライバがあるのですが、
Win64で動作させてみようとしたところ、32bitドライバをWin64が認識しません。(当たり前か)
将来的には、フル64bitしたいのですが、当面「Win32アプリ+64bitドライバ」の形体でしのぎたいと思っています。
「Win32アプリ+64bitドライバ」は可能なのでしょうか?
可能だとすれば、サンプルとか情報がどこかに落ちてないでしょうか?
Win32のアプリと32bitドライバがあるのですが、
Win64で動作させてみようとしたところ、32bitドライバをWin64が認識しません。(当たり前か)
将来的には、フル64bitしたいのですが、当面「Win32アプリ+64bitドライバ」の形体でしのぎたいと思っています。
「Win32アプリ+64bitドライバ」は可能なのでしょうか?
可能だとすれば、サンプルとか情報がどこかに落ちてないでしょうか?
681デフォルトの名無しさん
2011/03/15(火) 17:36:21.65 可能じゃなかったらどうやって64bit OSで32bitアプリを動かすんだ
682デフォルトの名無しさん
2011/03/16(水) 07:03:58.36 >>680
基本的に32bitドライバとアクセスするのと一緒だからサンプルは見つからないと思う
基本的に32bitドライバとアクセスするのと一緒だからサンプルは見つからないと思う
■ このスレッドは過去ログ倉庫に格納されています
