Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aturan MdlAfterReqCompletedReadA menentukan bahwa dalam fungsi panggilan balik EvtIoRead , objek daftar deskriptor memori (MDL) yang diambil tidak dapat diakses setelah permintaan I/O selesai.
Dalam fungsi panggilan balik EvtIoRead driver, buffer permintaan yang diambil dengan memanggil metode WdfRequestRetrieveOutputWdmMdl tidak dapat diakses setelah memanggil WdfRequestComplete, WdfRequestCompleteWithInformation, atau WdfRequestCompleteWithPriorityBoost pada permintaan I/O.
Aturan ini mempertimbangkan fungsi berikut:
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (pertama dan kedua parameter) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
Model driver: KMDF
Cara menguji
| Pada waktu kompilasi |
|---|
Jalankan Pemverifikasi Driver Statis dan tentukan aturan MdlAfterReqCompletedReadA . Gunakan langkah-langkah berikut untuk menjalankan analisis kode Anda:
Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver. |
Berlaku untuk
WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse