BufAfterReqCompletedIntIoctlA-Regel (kmdf)
Die BufAfterReqCompletedIntIoctlA-Regel überprüft, ob nach Abschluss einer Anforderung nicht auf den Puffer zugegriffen werden kann (nur innerhalb des EvtIoInternalDeviceControl-Rückrufs ). Der Puffer wurde durch Aufrufen von WdfRequestRetrieveInputBuffer oder WdfRequestRetrieveOutputBuffer oder WdfRequestRetrieveUnsafeUserInputBuffer oder WdfRequestRetrieveUnsafeUserOutputBuffer abgerufen.
Innerhalb der E/A-Ereignisrückruffunktion "EvtIoInternalDeviceControl " Der Durch Aufrufen von WdfRequestRetrieveInputBuffer oder WdfRequestRetrieveOutputBuffer oder WdfRequestRetrieveUnsafeUserInputBuffer oder WdfRequestRetrieveUnsafeUserOutputBuffer abgerufene Anforderungspuffer kann nach WdfRequestComplete, WdfRequestCompleteWithInformation oder WdfRequestCompleteWithPriorityBoost nicht zugegriffen werden. -Methoden wurden für die Anforderung aufgerufen. Die folgenden möglichen Pufferzugriffsfunktionen werden berücksichtigt: RtlMoveMemory (mit dem Puffer als 1. und 2. Parameter), RtlZeroMemory, RtlCompareMemory, ZwReadFile, ZwWriteFile, WDF_MEMORY_DESCRIPTOR_INIT_BUFFER, WdfMemoryCreatePreallocated, WdfMemoryAssignBuffer, WdfMemoryCopyFromBuffer, WdfMemoryCopyToBuffer.
Treibermodell: KMDF
So führen Sie einen Test durch
Beim Kompilieren: |
---|
Führen Sie Static Driver Verifier aus, und geben Sie die Regel BufAfterReqCompletedIntIoctlA an. Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden. |
Gilt für:
WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile