XP + VC8.0MFC + DDK(WDK)
参考書も手元になく、ググっても英語の文書ばかりでしょーもない質問。
HIDデバイスへWriteFile、ReadFileする場合のデータサイズはHidP_GetCaps関数で求め
た
HIDP_CAPS::InputReportByteLength、HIDP_CAPS::OutputReportByteLengthの長さですが
単位はByteの認識でよいのでしょうか?(変な質問ですみません^^;
現在、某機器にてInputReportByteLength、OutputReportByteLengthの両方が9と返って
くる
のですがバッファとしては、char *buf = new char [9] ;などと確保するでいいのです
よね?
何かのタイミングでブルー画面になる現象を調査してます故、なにか手がかりをお願い
します。
# 英語ドキュメントを読まないのはただの怠慢
# 自分の怠慢を他人に押し付けるのは傲慢
http://msdn2.microsoft.com/en-us/library/ms790919.aspx
http://msdn2.microsoft.com/en-us/library/ms790997.aspx
によればそういうことなのだと思うぞ
オラ作の HID ではレポートを複数種使っている
char* input_report_buffer = new char [caps.InputReportByteLength];
として青画面が出たことは無いので、レポート複数種ならこれで正しいと思う
WriteFile/ReadFile においては必ず ReportID を付加することになっている
InputReportByteLength 等は *ID があれば* それを含んだ、となっている
ということは HID レポートが1種類しかない場合には +1 が必要そうに思える
検証してない
参考にどうぞ
http://ema.fsr.jp/20061228.html
HIDデバイスってことは、USBデバイスドライバーですか?
>何かのタイミングでブルー画面になる現象を調査してます故、
>なにか手がかりをお願いします。
ドライバーは、会社その他仲間が作っているのですか。
もし、そうであるならブルー画面になるのはドライバーのバグであることが多いです。
ドライバーの作者に相談したほうがいいですね。
エラーコードも伝えた方がいいです。
わざわざ「HidP_GetCaps関数」でバイト数を得らなくても、決まっていると思います。
作者に相談してみるのがいいと思います。
補足、
>参考書も手元になく、ググっても英語の文書ばかりでしょーもない質問。
DDK関連に首を突っ込むのなら、英語の文章ばかりなのは仕方がないこですね。
慣れることが必要ですね。
DDKをインストールしてあるなら、ヘルプファイルやサンプル等も調べてみるのが
いいですね。
特に、DDKのサンプルは豊富にそろってます。
皆さん。レスありがとうございました。
言い訳ではないですが、英文ドキュメントは
キチンと読んでますよ。時間があるときは。(^^;
思いがけず、デバイス制御にクビ突っ込んで
分けも分からずの質問でした。<(__)>
件のブルー画面は、徹夜で解析した結果
別のドライバーがカーネルパニックを
引き起こしているらしい。とのことで
無事、朝方に釈放されました。(´▽`*)アハハ
# 実の担当が捕まらないからって
# 直接の上司でもない門外漢を
# 拉致しないで貰いたいものです;;