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_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile