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.
Bahasa Anotasi Kode Sumber (SAL) Microsoft menyertakan anotasi yang khusus untuk analisis driver Windows dan kode kernel terkait. Bahasa anotasi menyediakan cara menjelaskan properti fungsi, parameter, nilai pengembalian, struktur, dan bidang struktur. Anotasi seperti komentar yang Anda tambahkan ke kode Anda dan diabaikan oleh pengompilasi tetapi digunakan oleh alat analisis statis. Penggunaan anotasi membantu meningkatkan efektivitas pengembang, membantu meningkatkan akurasi hasil dari analisis statis, dan memungkinkan alat untuk lebih menentukan apakah bug tertentu ada. Anotasi driver tidak ditujukan untuk digunakan dalam kode yang tidak terkait dengan driver atau kernel. Anotasi driver didefinisikan dalam Driverspecs.h.
Nota Windows 8 memperkenalkan SAL 2.0, yang menggantikan SAL 1.0. Untuk informasi tentang SAL 2.0, lihat Menggunakan Anotasi SAL untuk Mengurangi Cacat Kode C/C++. SAL 2.0 menggantikan SAL 1.0. SAL 2.0 harus digunakan dengan Windows Driver Kit (WDK) 8 untuk Windows 8. Jika Anda memerlukan informasi tentang SAL 1.0 untuk driver, lihat dokumentasi yang dikirimkan dengan WDK untuk Windows 7.
Anotasi IRQL
Gunakan anotasi IRQL untuk menentukan rentang tingkat IRQL tempat fungsi harus berjalan. Anotasi IRQL membantu alat analisis kode untuk menemukan kesalahan dengan lebih akurat.
_IRQL_requires_max_(value)
_IRQL_requires_min_(value)
_IRQL_raises_(value)
_IRQL_requires_(value)
_IRQL_raises_(value)
_IRQL_saves_
_IRQL_restores_
_IRQL_saves_global_(kind, param)
_IRQL_restores_global_(kind, param)
_IRQL_always_function_min_(value)
_IRQL_always_function_max_(value)
_IRQL_requires_same_
_IRQL_is_cancel_ - Gunakan anotasi _IRQL_is_cancel untuk membantu memastikan perilaku fungsi panggilan balik DRIVER_CANCEL yang benar.
Anotasi titik mengambang untuk pengemudi
_Kernel_float_saved_
_Kernel_float_restored_
_Kernel_float_used_
Gunakan floating point annotations untuk driver untuk membantu alat analisis kode mendeteksi penggunaan floating point dalam kode mode kernel dan untuk melaporkan kesalahan jika status floating point tidak dilindungi dengan benar.
anotasi DO_DEVICE_INITIALIZING
_Kernel_clear_do_init_
Gunakan anotasi DO_DEVICE_INITIALIZING untuk menentukan apakah fungsi anotasi diharapkan menghapus bit DO_DEVICE_INITIALIZING di bidang Bendera objek perangkat.
anotasi Kernel_IoGetDmaAdapter
_Kernel_IoGetDmaAdapter_
Gunakan anotasi Kernel_IoGetDmaAdapter untuk mengarahkan alat analisis kode untuk mencari penyalahgunaan pointer DMA.
Anotasi untuk operand yang terkunci
_Interlocked_operand_
Gunakan Anotasi untuk operand yang saling mengunci untuk parameter fungsi untuk mengidentifikasinya sebagai operand yang saling mengunci. Sejumlah fungsi menggunakan alamat variabel sebagai salah satu parameter mereka yang harus diakses dengan menggunakan instruksi prosesor interlok. Ini adalah instruksi atom baca-melalui cache, dan jika operan digunakan dengan tidak benar, ini dapat menghasilkan bug yang sangat halus.
Anotasi untuk rutin penugasan driver
_Dispatch_type_
Gunakan Anotasi untuk Rutinitas Pengiriman Driver saat Anda mendeklarasikan rutinitas pengiriman driver WDM. Untuk informasi selengkapnya, lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver WDM dan Anotasi Rutinitas Pengiriman Driver.
Panggilan balik pra-operasi Minifilter Sistem File dengan anotasi _Flt_CompletionContext_Outptr_
_Flt_CompletionContext_Outptr_
Gunakan anotasi _Flt_CompletionContext_Outptr_ panggilan balik pra-operasi Minifilter Sistem File saat Anda mendeklarasikan fungsi panggilan balik pra-operasi Minifilter Sistem File PFLT_PRE_OPERATION_CALLBACK.
Tempatkan anotasi ini pada parameter CompletionContext. Anotasi ini mengarahkan alat analisis kode untuk memeriksa apakah CompletionContext sudah benar untuk nilai pengembalian FLT_PREOP_CALLBACK_STATUS.