Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Microsoft Source Code Annotation Language (SAL) olyan széljegyzeteket tartalmaz, amelyek a Windows-illesztőprogramok elemzésére és a kapcsolódó kernelkódra vonatkoznak. A széljegyzetnyelv lehetővé teszi a függvények, paraméterek, visszaadott értékek, struktúrák és struktúramezők tulajdonságainak leírását. A széljegyzetek olyanok, mint a kódhoz hozzáadott megjegyzések, amelyeket a fordító figyelmen kívül hagy, de a statikus elemzőeszközök használják. A széljegyzetek használata javítja a fejlesztői hatékonyságot, javítja a statikus elemzés eredményeinek pontosságát, és lehetővé teszi az eszközök számára, hogy jobban megállapítsák, létezik-e egy adott hiba. Az illesztőprogram-széljegyzetek nem használhatók nem illesztőprogramhoz vagy nem kernelhez kapcsolódó kódban. Az illesztőprogram-széljegyzetek az Driverspecs.h fájlban vannak definiálva.
Jegyzet A Windows 8 bevezeti az SAL 2.0-t, amely az SAL 1.0-t helyettesíti. Az SAL 2.0-ról további információt a C/C++ kódhibák csökkentésére szolgáló SAL-széljegyzetek használata című témakörben talál. Az SAL 2.0 az SAL 1.0 helyére lép. Az SAL 2.0-t a Windows 8-hoz készült Windows Driver Kit (WDK) 8-hoz kell használni. Ha az SAL 1.0-val kapcsolatos információkra van szüksége a vezetők számára, tekintse meg a Windows 7-hez készült WDK-t tartalmazó dokumentációt.
IRQL-széljegyzetek
Az IRQL-széljegyzetekkel megadhatja az IRQL-szintek tartományát, amelyeken egy függvénynek futnia kell. Az IRQL-széljegyzetek segítenek a kódelemző eszköznek a hibák pontosabb megtalálásában.
_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_ – A _IRQL_is_cancel széljegyzet használatával biztosíthatja a DRIVER_CANCEL visszahívási függvények helyes viselkedését.
Lebegőpontos széljegyzetek illesztőprogramokhoz
_Kernel_float_saved_
_Kernel_float_restored_
_Kernel_float_used_
Az illesztőprogramok lebegőpontos széljegyzeteinek használatával segít a kódelemző eszköznek észlelni a lebegőpontos függvény kernel módú kódban való használatát, és hibajelentést végezni, ha a lebegőpontos állapot nincs megfelelően védve.
DO_DEVICE_INITIALIZING széljegyzet
_Kernel_clear_do_init_
A DO_DEVICE_INITIALIZING annotáció használatával adja meg, hogy az annotált függvény várhatóan törli-e a DO_DEVICE_INITIALIZING bitet az eszközobjektum Flags mezőjében.
Kernel_IoGetDmaAdapter széljegyzet
_Kernel_IoGetDmaAdapter_
A Kernel_IoGetDmaAdapter széljegyzet használatával utasíthatja a kódelemzési eszközöket a DMA-mutatókkal való visszaélés keresésére.
Széljegyzetek egymáshoz kapcsolt operandusokhoz
_Interlocked_operand_
A függvényparaméterek összekapcsolt operandusainak széljegyzetei segítségével azonosíthatja őket egymáshoz kapcsolt operandusként. Számos függvény az egyik paramétere egy változó címe, amelyet egy összekapcsolt processzorutasítással kell elérni. Ezek a gyorsítótár átolvasási atomi utasításai, és ha az operandusokat helytelenül használják, nagyon finom hibákat eredményeznek.
Széljegyzetek az illesztőprogram-küldési rutinokhoz
_Dispatch_type_
A WDM-illesztőprogram-küldési rutinok deklarálásakor használja az illesztőprogram-küldési rutinok megjegyzéseit . További információ: Függvények deklarálása a WDM-illesztőprogramok függvényszerepkör-típusaival és az illesztőprogram-küldési rutinok megjegyzésével.
File System Minifilter előtti művelet-visszahívás _Flt_CompletionContext_Outptr_ annotáció
_Flt_CompletionContext_Outptr_
A fájlrendszer miniszűrő előművelet visszahívási függvényeinek PFLT_PRE_OPERATION_CALLBACK deklarálásakor használja a File System Minifilter pre-operation callback _Flt_CompletionContext_Outptr_ annotációt.
Helyezze ezt a megjegyzést a CompletionContext paraméterre. Ez a megjegyzés arra utasítja a kódelemző eszközt, hogy ellenőrizze, hogy a CompletionContext helyes-e a FLT_PREOP_CALLBACK_STATUS visszatérési értékhez.