Aturan BufAfterReqCompletedIntIoctl (kmdf)

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

Dalam fungsi panggilan balik peristiwa antrean I/O EvtIoInternalDeviceControl , buffer permintaan yang diambil dengan memanggil WdfRequestRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer, atau WdfRequestRetrieveUnsafeUserOutputBuffer tidak dapat diakses setelah permintaan selesai. Permintaan diselesaikan dengan memanggil WdfRequestComplete, WdfRequestCompleteWithInformation, atau WdfRequestComplete, WdfRequestCompleteWithPriorityBoost. Fungsi akses buffer yang mungkin berikut dipertimbangkan: WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserOutputBuffer, WdfRequestRetrieveInputBuffer dan WdfRequestRetrieveUnsafeUserInputBuffer.

Model driver: KMDF

Cara menguji

Pada waktu kompilasi

Jalankan Verifier Driver Statis dan tentukan aturan BufAfterReqCompletedIntIoctl .

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

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer