2

私は現在、SCSI コマンドをキャプチャし、各コマンドのパフォーマンスを測定するための下位フィルター ディスク ドライバーを作成しています。現在、私のドライバーは SCSI 要求をキャプチャし、それを次のドライバーに渡すことができます。ただし、完了ルーチンを登録しようとすると、次のステータスが表示されます: 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)。

完了ルーチンのない作業コード:

WDF_REQUEST_SEND_OPTIONS_INIT(&options, WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET);
WdfRequestSend(Request, Target, &options);

完了ルーチンで失敗したコード:

WdfRequestFormatRequestUsingCurrentType(Request);
WdfRequestSetCompletionRoutine(Request, CompletionRoutine, CompletionContext);
WdfRequestSend(Request, Target, WDF_NO_SEND_OPTIONS);

どんな助けでも大歓迎です。ありがとう。

ノート:

  • WdfRequestSend() は失敗したルーチンです。
  • 上部フィルター ディスク ドライバーの場合、完了ルーチンを含むコードが機能します。
4

1 に答える 1

1

NTDEVに関するこの議論によると、 CompletionRoutineisNULLの場合、オプションを使用する必要があることがわかりWDF_REQUEST_SEND_OPTION_SEND_AND_FORGETます。

于 2015-06-19T19:16:43.803 に答える