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.
Gunakan aturan ini untuk memverifikasi bahwa driver Anda melacak paket permintaan I/O (IRP) dengan benar sehingga perangkat tidak dihapus saat RUN keluar.
Di bagian ini
| Topik | Deskripsi |
|---|---|
Aturan IoReleaseRemoveLockAndWaitOutsideRemoveDevice menentukan bahwa IoReleaseRemoveLockAndWait tidak boleh dipanggil di luar IRP_MJ_PNP dengan IRP_MN_REMOVE_DEVICE untuk driver PnP. |
|
Aturan NsRemoveLockMnRemove memverifikasi driver tidak mengembalikan STATUS_NOT_SUPPORTED saat memproses IRP_MJ_PNP dengan minorFunction IRP_MN_REMOVE_DEVICE. Aturan ini hanya berlaku untuk driver FDO dan FIDO. |
|
Aturan NsRemoveLockMnSurpriseRemove memverifikasi bahwa driver tidak mengembalikan STATUS_NOT_SUPPORTED saat memproses permintaan IRP_MJ_PNP dengan IRP_MN_SUPRISE_REMOVAL minorFunction. Aturan ini hanya berlaku untuk driver FDO dan FIDO. |
|
Aturan NsRemoveLockQueryMnRemove memverifikasi driver tidak mengembalikan STATUS_NOT_SUPPORTED saat memproses IRP_MJ_PNP dengan MinorFunction IRP_MN_QUERY_REMOVE. Aturan ini hanya berlaku untuk driver FDO dan FIDO. |
|
Aturan RemoveLock menentukan bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar. Selain itu, di akhir rutinitas IRP_MJ_PNP atau IRP_MJ_POWER, driver tidak boleh menahan RemoveLock. |
|
Aturan RemoveLockCheck memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLockAndWait digunakan dengan benar saat memproses IRP_MJ_PNP dengan MinorFunction IRP_MN_REMOVE_DEVICE. |
|
Aturan RemoveLockForward memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP ke perangkat lain. |
|
Aturan RemoveLockForward2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP ke perangkat lain. |
|
Aturan RemoveLockForwardDeviceControl memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar ketika driver menggunakan IoCallDriver untuk meneruskan IRP ke perangkat lain. |
|
Aturan RemoveLockForwardDeviceControl2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar ketika driver menggunakan IoCallDriver untuk meneruskan IRP ke perangkat lain. |
|
Aturan RemoveLockForwardDeviceControlInternal memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP menggunakan IoCallDriver ke perangkat lain. |
|
Aturan RemoveLockForwardDeviceControlInternal2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP menggunakan IoCallDriver ke perangkat lain. |
|
Aturan RemoveLockForwardRead memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar. |
|
Aturan RemoveLockForwardRead2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP menggunakan IoCallDriver ke perangkat lain. |
|
Aturan RemoveLockForwardWrite memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP menggunakan IoCallDriver ke perangkat lain. |
|
Aturan RemoveLockForwardWrite2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat meneruskan IRP menggunakan IoCallDriver ke perangkat lain. |
|
Aturan RemoveLockMnRemove memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLockAndWait digunakan dengan benar saat memproses IRP_MJ_PNP dengan MinorFunction IRP_MN_REMOVE_DEVICE. |
|
Aturan RemoveLockMnRemove2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLockAndWait digunakan dengan benar saat memproses permintaan IRP_MN_REMOVE_DEVICE sebelum IRP diteruskan ke driver yang lebih rendah. |
|
Aturan RemoveLockMnSurpriseRemove memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLockAndWait digunakan dengan benar saat memproses IRP_MJ_PNP dengan MinorFunction IRP_MN_SUPRISE_REMOVAL. Driver harus memperoleh kunci hapus sebelum meneruskan IRP ke bawah tumpukan. |
|
Aturan RemoveLockQueryMnRemove memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dengan benar saat memproses IRP_MJ_PNP dengan MinorFunction IRP_MN_QUERY_REMOVE_DEVICE. Driver harus memperoleh kunci hapus sebelum meneruskan IRP ke bawah tumpukan. |
|
Aturan RemoveLockRelease2 memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseCleanup menentukan bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Setiap panggilan ke IoAcquireRemoveLock harus memiliki panggilan yang cocok ke IoReleaseRemoveLock. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseClose memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseCreate memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseDeviceControl memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseInternalDeviceControl memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleasePnp memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleasePower memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseRead memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseShutdown memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseSystemControl memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
|
Aturan RemoveLockReleaseWrite memverifikasi bahwa panggilan ke IoAcquireRemoveLock dan IoReleaseRemoveLock digunakan dalam perubahan ketat. Selain itu, di akhir rutinitas pengiriman driver tidak boleh menahan kunci hapus. |
Untuk memilih seperangkat aturan IrpTracking
Pilih proyek driver Anda (.vcxProj) di Microsoft Visual Studio. Dari menu Driver , klik Luncurkan Pemverifikasi Driver Statis....
Klik tab Aturan. Di bawah Seperangkat Aturan, pilih IrpTracking.
Untuk memilih seperangkat aturan default dari jendela prompt perintah pengembang Visual Studio, tentukan IrpTracking.sdv dengan opsi /check . Contohnya:
msbuild /t:sdv /p:Inputs="/check:IrpTracking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat dalam perintah Driver dan Verifier Driver Statis (MSBuild).