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:
Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver. |
Berlaku untuk
WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer