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 mengelola sumber daya bersama dengan benar.
Di bagian ini
| Topik | Deskripsi |
|---|---|
Aturan CancelSpinLock menentukan bahwa driver memanggil IoAcquireCancelSpinLock sebelum memanggil IoReleaseCancelSpinLock dan bahwa driver memanggil IoReleaseCancelSpinLock sebelum panggilan berikutnya ke IoAcquireCancelSpinLock. |
|
Aturan CancelSpinlockRelease menentukan bahwa panggilan ke IoAcquireCancelSpinLock dan IoReleaseCancelSpinLock digunakan dalam perubahan ketat. Artinya, setiap panggilan ke IoAcquireCancelSpinLock harus memiliki panggilan yang sesuai ke IoReleaseCancelSpinLock. |
|
Aturan CriticalRegions menentukan bahwa driver harus memanggil KeEnterCriticalRegion sebelum memanggil KeLeaveCriticalRegion dan bahwa driver memanggil KeLeaveCriticalRegion sebelum panggilan berikutnya ke KeEnterCriticalRegion. (Panggilan berlapis diizinkan.) |
|
Aturan ExclusiveResourceAccess menentukan bahwa driver memanggil ExAcquireResourceExclusiveLite sebelum memanggil ExReleaseResourceLite atau ExReleaseResourceForThreadLite dan menentukan bahwa driver memanggil ExReleaseResourceLite atau ExReleaseResourceForThreadLite sebelum panggilan berikutnya ke ExAcquireResourceExclusiveLite. |
|
Aturan GuardedRegions memverifikasi bahwa panggilan ke KeEnterGuardedRegion dan KeLeaveGuardedRegion digunakan dalam perubahan ketat. |
|
Aturan QueuedSpinLock menentukan bahwa driver memanggil KeAcquireInStackQueuedSpinLock sebelum memanggil KeReleaseInStackQueuedSpinLock dan bahwa driver memanggil KeReleaseInStackQueuedSpinLock sebelum panggilan berikutnya ke KeAcquireInStackQueuedSpinLock. |
|
Aturan QueuedSpinLockRelease menentukan bahwa panggilan ke KeAcquireInStackQueuedSpinLock dan KeReleaseInStackQueuedSpinLock digunakan dalam alternasi ketat. |
|
Aturan SpinLock menentukan bahwa, setelah memanggil KeAcquireSpinLock, driver memanggil KeReleaseSpinLock sebelum panggilan berikutnya ke KeAcquireSpinLock atau ke KeAcquireSpinLockRaiseToDpc. |
|
Aturan SpinLockDpc menentukan bahwa panggilan ke KeAcquireSpinLock atau KeAcquireSpinLockRaiseToDpc dan KeReleaseSpinLock harus dilakukan secara bergantian yang ketat. Artinya, setelah memanggil KeAcquireSpinLock atau KeAcquireSpinLockRaiseToDpc, driver harus memanggil KeReleaseSpinLock sebelum panggilan berikutnya ke KeAcquireSpinLock atau ke KeAcquireSpinLockRaiseToDpc. |
|
Aturan SpinlockRelease menentukan bahwa panggilan ke KeReleaseSpinLock dilakukan secara bergantian ketat dengan KeAcquireSpinLock dan KeAcquireSpinLockRaiseToDpc. Artinya, driver harus memanggil KeReleaseSpinLock setelah memanggil KeAcquireSpinLock atau KeAcquireSpinLockRaiseToDpc dan sebelum panggilan berikutnya ke KeAcquireSpinLock atau ke KeAcquireSpinLockRaiseToDpc. |
|
Aturan SpinLockSafe menentukan bahwa IoStartNextPacket dan IoCompleteRequest tidak dipanggil saat menahan kunci putar. |
|
Aturan WithinCriticalRegion menentukan bahwa panggilan driver ke fungsi sinkronisasi tertentu hanya muncul setelah memanggil KeEnterCriticalRegion dan sebelum memanggil KeLeaveCriticalRegion. Fungsi sinkronisasi yang terpengaruh adalah sebagai berikut: |
Untuk memilih seperangkat aturan Penguncian
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 Penguncian.
Untuk memilih seperangkat aturan default dari jendela prompt perintah pengembang Visual Studio, tentukan Locking.sdv dengan opsi /check . Contohnya:
msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat dalam perintah Driver dan Pemverifikasi Driver Statis (MSBuild).