MdlAfterReqCompletedWriteA ルール (kmdf)
MdlAfterReqCompletedWriteA ルールは、EvtIoWrite コールバック関数内で、I/O 要求の完了後に取得されたメモリ記述子リスト (MDL) オブジェクトにアクセスできないことを指定します。
デバイスの I/O に対するドライバーの EvtIoWrite コールバック関数内では、WdfRequestComplete、WdfRequestCompleteWithInformation、または WdfRequestCompleteWithPriorityBoost を I/O 要求で呼び出した後に、WdfRequestRetrieveInputWdmMdl メソッドを呼び出して取得した要求バッファーにはアクセスできません。
このルールでは、次の MDL アクセス関数が考慮されます。
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (1 番目と 2 番目のパラメータ)KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
ドライバーモデル: KMDF
テスト方法
コンパイル時 |
---|
静的ドライバー検証ツール を実行し、MdlAfterReqCompletedWriteA ルールを指定します。 コードの分析を実行するには、次の手順に従います。詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。 |
適用対象
WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse