USBプログラミング入門at TECH
USBプログラミング入門 - 暇つぶし2ch22:デフォルトの名無しさん
08/02/17 03:37:13
質問しようとスレ検索したらこんなんかいw

ReadFile() 使って USB デバイスから到着するデータパケット (で良いのかな? 用語不詳) を
読み込んでるんですが、まぁ具体的には読み込みを別スレッド化してキュー経由で取り出せる
ようにしてみたんですけどね。読み込みが I/O ブロックに入ってしまうと同じハンドルの WriteFile()
もブロックされてしまうようになって転送中断も終了も出来なくなります。

I/O ブロックに入らないよう WaitForSingle/MultiObject() で確認しようと思ったのですが、USB デバ
イスのハンドルだとシグナル状態がないのか、うまく機能してくれないようで。何かオプションとか
間違ってるんでしょうか?

// オープン
CreateFile(device_path, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

// 読み込み (2種類)
#define IOCTL_ASYNC_IN CTL_CODE (FILE_DEVICE_UNKNOWN, 0x850, METHOD_BUFFERED, FILE_ANY_ACCESS)
ReadFile(handle, temp, MAX_BUFFER_SIZE, &length, NULL);
DeviceIoControl(handle, IOCTL_ASYNC_IN, 0, 0, temp, sizeof(temp), &length, NULL);

// 書き込み
WriteFile(handle, buffer_array, length, &dummy, NULL);


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch