Regola MdlAfterReqCompletedIntIoctlA (kmdf)

La regola MdlAfterReqCompletedIntIoctlA specifica che all'interno della funzione callback EvtIoInternalDeviceControl non è possibile accedere all'elenco dei descrittori di memoria (MDL) dopo il completamento della richiesta di I/O.

Nella funzione di callback EvtIoInternalDeviceControl del driver, l'MDL recuperato chiamando il metodo WdfRequestRetrieveInputWdmMdl o WdfRequestRetrieveOutputWdmMdl non può essere accessibile dopo aver chiamato WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost nella richiesta di I/O.

Questa regola considera le funzioni di accesso MDL seguenti:

WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (primo e secondo parametro) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize

Modello di driver: KMDF

Come eseguire il test

In fase di compilazione

Eseguire il verifica driver statico e specificare la regola MdlAfterReqCompletedIntIoctlA .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Uso del verificatore driver statico per trovare i difetti nei driver.

Si applica a

WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestComplete WdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmdlWdfRequestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCount MmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse