BufAfterReqCompletedIntIoctlA ルール (kmdf)
BufAfterReqCompletedIntIoctlA ルールは、要求が完了した後、そのバッファーにはアクセスできないことを検証します (EvtIoInternalDeviceControl コールバック内のみ)。 バッファーは、WdfRequestRetrieveInputBuffer または WdfRequestRetrieveOutputBuffer または WdfRequestRetrieveUnsafeUserInputBuffer または WdfRequestRetrieveUnsafeUserOutputBuffer を呼び出すことによって取得されました。
EvtIoInternalDeviceControl I/O キュー イベント コールバック関数内では、WdfRequestRetrieveInputBuffer、WdfRequestRetrieveOutputBuffer、WdfRequestRetrieveUnsafeUserInputBuffer または WdfRequestRetrieveUnsafeUserOutputBuffer を呼び出して取得した要求バッファーは、WdfRequestComplete の後にアクセスできません。WdfRequestCompleteWithInformation または WdfRequestCompleteWithPriorityBoost メソッドが要求で呼び出されました。 次の可能なバッファー アクセス関数が考えられます。RtlMoveMemory (バッファーを 1 番目および 2 番目のパラメーターとして使用)、RtlZeroMemory、RtlCompareMemory、ZwReadFile、ZwWriteFile、WDF_MEMORY_DESCRIPTOR_INIT_BUFFER、WdfMemoryCreatePreallocated、WdfMemoryAssignBuffer、WdfMemoryCopyFromBuffer、WdfMemoryCopyToBuffer
ドライバーモデル: KMDF
テスト方法
コンパイル時 |
---|
静的ドライバー検証ツール を実行し、BufAfterReqCompletedIntIoctlA ルールを指定します。 コードの分析を実行するには、次の手順に従います。詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。 |
適用対象
WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformatioWdfRequestCompleteWithPriorityBoosWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile