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 RequestCompleted menentukan bahwa untuk driver non-filter setiap permintaan yang disajikan ke antrean I/O default driver harus diselesaikan, kecuali permintaan ditangguhkan atau diteruskan, atau jika WdfRequestStopAcknowledge dipanggil.
Permintaan I/O yang disajikan ke antrean default driver melalui salah satu fungsi panggilan balik antrean harus diselesaikan sebelum keluar dari fungsi panggilan balik permintaan I/O, kecuali dalam kasus berikut:
Permintaan ditangguhkan (ke DPC atau item kerja, misalnya). Dalam hal ini, Anda dapat menggunakan aturan DeferredRequestCompleted .
Permintaan diteruskan ke target I/O atau ke antrean lain
Permintaan dikirimkan ke kerangka kerja (dengan memanggil WdfDeviceEnqueueRequest)
WdfRequestStopAcknowledge dipanggil
Aturan diverifikasi ketika driver keluar dari fungsi panggilan balik berikut:
EvtIoStop, EvtCleanupCallback , atau EvtDestroyCallback untuk antrean
EvtCleanupCallback atau EvtDestroyCallback untuk objek file
EvtFileClose, EvtFileCleanup, EvtDeviceSelfManagedIoSuspend, EvtDeviceSelfManagedIoFlush, EvtDeviceSelfManagedIoCleanup, EvtDeviceShutdownNotification, EvtDeviceSurpriseRemoval, EvtCleanupCallback atau EvtDestroyCallback untuk perangkat
Fungsi panggilan balik antrean I/O untuk presentasi permintaan adalah EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl, dan EvtIoInternalDeviceControl
Model driver: KMDF
Cara menguji
Pada waktu kompilasi |
---|
Jalankan Pemverifikasi Driver Statis dan tentukan aturan RequestCompleted . Gunakan langkah-langkah berikut untuk menjalankan analisis kode Anda:
Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver. |
Berlaku untuk
WdfDeviceEnqueueRequestWdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingRequestWdfIoTargetSendInternalIoctlOthersSynchronouslyWdfIoTargetSendInternalIoctlSy Secara sinkronWdfIoTargetSendIoctlSynchronouslyWdfIoTargetSendReadSynchronouslyWdfIoTargetSendWriteSynchronouslyWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestForwardToIoQueueWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestSendWdfRequestStopAcknowledgeWdfWorkItemEnqueue