次の方法で共有


BufAfterReqCompletedIntIoctl ルール (kmdf)

BufAfterReqCompletedIntIoctl ルールは、要求が完了した後、そのバッファーにはアクセスできないことを指定します (EvtIoInternalDeviceControl コールバック関数内のみ)。 バッファーは、WdfRequestRetrieveOutputBuffer または WdfRequestRetrieveUnsafeUserOutputBuffer または WdfRequestRetrieveInputBuffer または WdfRequestRetrieveUnsafeUserInputBuffer を呼び出すことによって取得されます。

EvtIoInternalDeviceControl I/O キュー イベント コールバック関数内では、WdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBuffer、または WdfRequestRetrieveUnsafeUserOutputBuffer を呼び出して取得した要求バッファーは、要求の完了後にアクセスできません。 要求は、WdfRequestCompleteWdfRequestCompleteWithInformation、または WdfRequestCompleteWdfRequestCompleteWithPriorityBoost を呼び出すことによって完了します。 次の可能なバッファー アクセス関数が考えられます。WdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserOutputBuffer、WdfRequestRetrieveInputBufferWdfRequestRetrieveUnsafeUserInputBuffer

ドライバーモデル: KMDF

テスト方法

コンパイル時

静的ドライバー検証ツール を実行し、BufAfterReqCompletedIntIoctl ルールを指定します。

コードの分析を実行するには、次の手順に従います。
  1. コードを準備します (ロール型宣言を使用します)。
  2. 静的ドライバー検証ツールを実行します。
  3. 結果を表示および分析します。

詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。

適用対象

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer