InvalidReqAccess ルール (kmdf)

InvalidReqAccess ルールは、要求が完了またはキャンセル後にアクセスしないよう指定します。 このルールは、二重で完了をチェックするルールや、要求にチェックするルールが 2 回キャンセルできるものとしてマークされているなど、他のルールと重複する場合があります。

要求が完了した場合、キャンセル可能とマークされた場合、または送信後にキャンセルされた場合、要求は無効と見なされます。 要求が無効と見なされた後、要求が以前にキャンセル可能とマークされている場合、ドライバーが WdfRequestUnmarkCancelable を呼び出す場合を除き、要求を WdfRequestXxx 関数に渡すことはできません。

このルールは InvalidReqAccessLocal ルールに似ていますが、InvalidReqAccessLocal ルールは既定の I/O キュー コールバック関数内でのみ実行されます。

ドライバーモデル: KMDF

テスト方法

コンパイル時

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

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

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

適用対象

WdfRequestAllocateTimer
WdfRequestCancelSentRequest
WdfRequestChangeTarget
WdfRequestComplete
WdfRequestCompleteWithInformation
WdfRequestCompleteWithPriorityBoost
WdfRequestFormatRequestUsingCurrentType
WdfRequestForwardToIoQueue
WdfRequestGetCompletionParams
WdfRequestGetFileObject
WdfRequestGetInformation
WdfRequestGetIoQueue
WdfRequestGetParameters
WdfRequestGetRequestorMode
WdfRequestIsFrom32BitProcess
WdfRequestMarkCancelable
WdfRequestMarkCancelableEx
WdfRequestProbeAndLockUserBufferForRead
WdfRequestProbeAndLockUserBufferForWrite
WdfRequestRequeue
WdfRequestRetrieveInputBuffer
WdfRequestRetrieveInputMemory
WdfRequestRetrieveInputWdmMdl
WdfRequestRetrieveOutputBuffer
WdfRequestRetrieveOutputMemory
WdfRequestRetrieveOutputWdmMdl
WdfRequestRetrieveUnsafeUserInputBuffer
WdfRequestRetrieveUnsafeUserOutputBuffer
WdfRequestReuse
WdfRequestSend
WdfRequestSetCompletionRoutine
WdfRequestSetInformation
WdfRequestUnmarkCancelable
WdfRequestWdmFormatUsingStackLocation
WdfRequestWdmGetIrp