Bagikan melalui


Aturan BufAfterReqCompletedIntIoctlA (kmdf)

Aturan BufAfterReqCompletedIntIoctlA memverifikasi bahwa setelah permintaan selesai, buffernya tidak dapat diakses (hanya di dalam panggilan balik EvtIoInternalDeviceControl ). Buffer diambil dengan memanggil WdfRequestRetrieveInputBuffer atau WdfRequestRetrieveOutputBuffer atau WdfRequestRetrieveUnsafeUserInputBuffer atau WdfRequestRetrieveUnsafeUserOutputBuffer.

Dalam fungsi panggilan balik peristiwa antrean EvtIoInternalDeviceControl I/O, buffer permintaan yang diambil dengan memanggil WdfRequestRetrieveInputBuffer atau WdfRequestRetrieveOutputBuffer atau WdfRequestRetrieveUnsafeUserInputBuffer atau WdfRequestRetrieveUnsafeUserOutputBuffer tidak dapat diakses setelah WdfRequestComplete, WdfRequestCompleteWithInformation, atau WdfRequestCompleteWithPriorityBoost metode telah dipanggil berdasarkan permintaan. Kemungkinan fungsi akses buffer berikut dipertimbangkan: RtlMoveMemory (dengan buffer sebagai parameter ke-1 dan ke-2), RtlZeroMemory, RtlCompareMemory, ZwReadFile, ZwWriteFile, WDF_MEMORY_DESCRIPTOR_INIT_BUFFER, WdfMemoryCreatePreallocated, WdfMemoryAssignBuffer, WdfMemoryCopyFromBuffer, WdfMemoryCopyToBuffer.

Model driver: KMDF

Cara menguji

Pada waktu kompilasi

Jalankan Pemverifikasi Driver Statis dan tentukan aturan BufAfterReqCompletedIntIoctlA .

Gunakan langkah-langkah berikut untuk menjalankan analisis kode Anda:
  1. Siapkan kode Anda (gunakan deklarasi jenis peran).
  2. Jalankan Pemverifikasi Driver Statis.
  3. Lihat dan analisis hasilnya.

Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver.

Berlaku untuk

WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile