Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jazyk SAL (Source Code Annotation Language) obsahuje poznámky specifické pro analýzu ovladačů systému Windows a souvisejícího kódu jádra. Jazyk poznámek poskytuje způsob popisu vlastností funkcí, parametrů, návratových hodnot, struktur a polí struktury. Poznámky jsou podobné komentářům, které přidáte do kódu, a kompilátor je ignoruje, ale používají se nástroji pro statickou analýzu. Použití poznámek pomáhá zlepšit efektivitu vývojářů, pomáhá zlepšit přesnost výsledků ze statické analýzy a umožňuje nástrojům lépe určit, jestli určitá chyba existuje. Poznámky ovladačů nejsou určeny k použití v kódu, který nesouvisí s ovladači nebo s jádrem. Poznámky k ovladačům jsou definovány v souboru Driverspecs.h.
Poznámka Systém Windows 8 zavádí sal 2.0, který nahrazuje SAL 1.0. Informace o SAL 2.0 naleznete v tématu Použití poznámek SAL ke snížení vad kódu C/C++. SAL 2.0 nahrazuje SAL 1.0. SAL 2.0 by se měl používat se sadou Windows Driver Kit (WDK) 8 pro Windows 8. Pokud potřebujete informace o sal 1.0 pro ovladače, přečtěte si dokumentaci, která je dodávána s WDK pro Windows 7.
Poznámky IRQL
Pomocí poznámek IRQL určete rozsah úrovní IRQL, na kterých má funkce běžet. Poznámky IRQL pomáhají nástroji pro analýzu kódu přesněji najít chyby.
_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_ - Pomocí _IRQL_is_cancel poznámky můžete zajistit správné chování funkce zpětného volání DRIVER_CANCEL.
Anotace s plovoucí desetinnou čárkou pro ovladače
_Kernel_float_saved_
_Kernel_float_restored_
_Kernel_float_used_
Pomocí poznámek s plovoucí desetinnou čárkou pro ovladače můžete nástroj pro analýzu kódu použít k detekci použití plovoucí desetinné čárky v kódu v režimu jádra a hlásit chyby, pokud stav plovoucí desetinné čárky není správně chráněn.
DO_DEVICE_INITIALIZING poznámky
_Kernel_clear_do_init_
Pomocí DO_DEVICE_INITIALIZING poznámky určete, jestli se očekává, že funkce s poznámkami vymaže DO_DEVICE_INITIALIZING bit v poli Flags objektu zařízení.
Kernel_IoGetDmaAdapter poznámky
_Kernel_IoGetDmaAdapter_
Pomocí Kernel_IoGetDmaAdapter poznámky nasměrujte nástroje pro analýzu kódu tak, aby hledaly zneužití ukazatelů DMA.
Poznámky pro synchronizované operandy
_Interlocked_operand_
Pomocí poznámek pro vzájemně uzamčené operandy pro parametry funkce je identifikujte jako vzájemně uzamčené operandy. Řada funkcí bere jako jeden z jejich parametrů adresu proměnné, ke které se má přistupovat pomocí instrukce pro interlockovaný procesor. Jedná se o atomické instrukce pro čtení do mezipaměti a pokud se operandy používají nesprávně, jsou výsledkem velmi drobných chyb.
Poznámky pro rutiny odesílání ovladačů
_Dispatch_type_
Pokud deklarujete rutiny odesílání ovladačů WDM, použijte poznámky pro rutiny pro odesílání ovladačů WDM. Další informace naleznete v tématu Deklarování funkcí pomocí typů rolí funkcí pro ovladače WDM a přidávání poznámek rutin odesílání ovladačů.
Minifiltr systému souborů před operací zpětného volání _Flt_CompletionContext_Outptr_ poznámky
_Flt_CompletionContext_Outptr_
Když deklarujete funkce zpětného volání před operací minifiltru systému souborů jako PFLT_PRE_OPERATION_CALLBACK, použijte anotaci _Flt_CompletionContext_Outptr_ minifiltru souborového systému.
Tuto poznámku umístěte na parametr CompletionContext. Tato anotace nasměruje nástroj pro analýzu kódu ke kontrole, zda je CompletionContext správný pro návratovou hodnotu FLT_PREOP_CALLBACK_STATUS.
Viz také
Použití poznámek SAL k snížení míry výskytu závad kódu C/C++