BufAfterReqCompletedIntIoctl 規則 (kmdf)

BufAfterReqCompletedIntIoctl 規則會指定在要求完成之後,只能在 EvtIoInternalDeviceControl 回呼函式記憶體取其緩衝區) (。 呼叫 WdfRequestRetrieveOutputBuffer 或 WdfRequestRetrieveUnsafeUserOutputBuffer 或 WdfRequestRetrieveInputBuffer 或 WdfRequestRetrieveUnsafeUserInputBuffer 來擷取緩衝區。

在 EvtIoInternalDeviceControl I/O 佇列事件回呼函式中,呼叫 WdfRequestRetrieveInputBuffer、 WdfRequestRetrieveOutputBuffer、 WdfRequestRetrieveUnsafeUserInputBuffer 或 WdfRequestRetrieveUnsafeUserOutputBuffer 之後無法存取要求緩衝區。 要求已完成,方法是呼叫 WdfRequestComplete、WdfRequestCompleteWithInformation 或 WdfRequestComplete、WdfRequestCompleteWithPriorityBoost。 請考慮下列可能的緩衝區存取函式: WdfRequestRetrieveOutputBuffer、 WdfRequestRetrieveUnsafeUserOutputBuffer、 WdfRequestRetrieveInputBuffer 和 WdfRequestRetrieveUnsafeUserInputBuffer。

驅動程式模型:KMDF

測試方法

在編譯時期

執行 靜態驅動程序驗證器 ,並指定 BufAfterReqCompletedIntIoctl 規則。

使用下列步驟來執行程式碼的分析:
  1. 準備程式代碼 (使用角色類型宣告) 。
  2. 執行靜態驅動程式驗證程式。
  3. 檢視和分析結果。

如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵。

適用於

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer