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 dengan benar mengikuti serangkaian persyaratan umum untuk penanganan timer, operasi jeda, kunci, string, dan pengikatan yang tepat.
Di bagian ini
| Topik | Deskripsi |
|---|---|
Aturan CancelTimerObject menentukan bahwa NdisSetTimerObject dan NdisCancelTimerObject dipanggil dalam urutan alternatif. Tujuan utamanya adalah untuk memastikan semua timer dibatalkan ketika MiniportHaltEx berakhir. |
|
Aturan MiniportPause_Return menentukan bahwa fungsi panggilan balik MiniportPause harus mengembalikan hanya NDIS_STATUS_SUCCESS jika operasi jeda selesai, atau NDIS_STATUS_PENDING jika driver miniport dalam status jeda. Status lain yang dikembalikan tidak valid. |
|
Aturan ini memeriksa bahwa NdisOpenConfigurationEx dan NdisCloseConfiguration dipanggil dalam urutan alternatif. Tujuan utamanya adalah untuk memastikan bahwa handle konfigurasi ditutup saat MiniportHaltEx dihentikan. |
|
NdisQueryBindInstanceName mengalokasikan memori untuk string yang menentukan nama yang mudah diingat. Setelah pemanggil selesai menggunakan memori ini, pemanggil harus memanggil fungsi NdisFreeMemory untuk merilis memori. |
|
Driver protokol tidak dapat memanggil NdisReEnumerateProtocolBindings dari dalam konteks fungsi ProtocolBindAdapterEx atau ProtocolUnbindAdapterEx . Selain itu, driver protokol tidak dapat memanggil NdisReEnumerateProtocolBindings dari dalam konteks fungsi ProtocolNetPnPEvent jika parameter ProtocolBindingContext dari ProtocolNetPnPEvent bukan NULL. Namun, driver protokol dapat memanggil NdisReEnumerateProtocolBindings dari dalam konteks ProtocolNetPnPEvent jika ProtocolBindingContext adalah NULL. Nilai NULL ProtocolBindingContext menunjukkan bahwa peristiwa berlaku untuk semua pengikatan. |
|
Aturan PeriodicTimer menentukan bahwa pemanggil NdisCancelTimerObject harus berjalan di IRQL = PASSIVE_LEVEL jika nilai nonzero ditentukan dalam parameter MillisecondsPeriod dari fungsi NdisSetTimerObject . Jika parameter MillisecondsPeriod dari fungsi NdisSetTimerObject adalah nol, pemanggil NdisCancelTimerObject dapat berjalan di IRQL <= DISPATCH_LEVEL. |
|
Aturan WriteErrorLog menentukan bahwa jika fungsi NdisMAllocateSharedMemory dipanggil dalam fungsi MiniportInitializeEx , driver juga harus memanggil NdisWriteErrorLogEntry jika alokasi gagal. |
Untuk memilih seperangkat aturan lain-lain
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 Lain-lain.
Untuk memilih seperangkat aturan default dari jendela prompt perintah pengembang Visual Studio, tentukan Miscellaneous.sdv dengan opsi /check . Contohnya:
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Untuk informasi selengkapnya, lihat Menggunakan Pemverifikasi Driver Statis untuk Menemukan Cacat pada Driver dan Perintah Pemverifikasi Driver Statis (MSBuild).