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.
Pomocí těchto pravidel ověřte, že ovladač správně dodržuje obecnou sadu požadavků pro správné zpracování časovačů, operací pozastavení, klíčů, řetězců a vazeb.
V této části
| Téma | Popis |
|---|---|
Pravidlo CancelTimerObject určuje, že NdisSetTimerObject a NdisCancelTimerObject jsou volány v alternativním pořadí. Konečným cílem je zajistit, aby všechny časovače byly zrušeny, když MiniportHaltEx skončí. |
|
Pravidlo MiniportPause_Return určuje, že funkce zpětného volání MiniportPause by měla vracet pouze NDIS_STATUS_SUCCESS, pokud je operace pozastavení dokončena, nebo NDIS_STATUS_PENDING, pokud je ovladač miniportu ve stavu pozastavení. Jakýkoli jiný vrácený stav je neplatný. |
|
Toto pravidlo zkontroluje, že NdisOpenConfigurationEx a NdisCloseConfiguration jsou volány v alternativním pořadí. Konečným cílem je zajistit, aby se při ukončení MiniportHaltEx zavřely obslužné rutiny konfigurace. |
|
NdisQueryBindInstanceName přidělí paměť pro řetězec, který určuje popisný název. Jakmile volající tuto paměť dokončí, volající musí zavolat funkci NdisFreeMemory , aby uvolnil paměť. |
|
Ovladače protokolu nemohou volat NdisReEnumerateProtocolBindings z kontextu funkce ProtocolBindAdapterEx nebo ProtocolUnbindAdapterEx . Ovladače protokolu také nemůžou volat NdisReEnumerateProtocolBindings z kontextu funkce ProtocolNetPnPEvent , pokud protocolBindingContext parametr ProtocolNetPnPEvent není NULL. Ovladače protokolu však mohou Volat NdisReEnumerateProtocolBindings z kontextu ProtocolNetPnPEvent , pokud ProtocolBindingContext má hodnotu NULL. Hodnota NULL ProtocolBindingContext označuje, že událost se vztahuje na všechny vazby. |
|
Pravidlo PeriodicTimer určuje, že volající NdisCancelTimerObject musí být spuštěn v IRQL = PASSIVE_LEVEL pokud byla v parametru MillisecondsPeriod funkce NdisSetTimerObject zadána nenulová hodnota. Pokud byl parametr MillisecondsPeriod funkce NdisSetTimerObject nulový, lze volání funkce NdisCancelTimerObject provádět na IRQL <= DISPATCH_LEVEL. |
|
Pravidlo WriteErrorLog určuje, že pokud je funkce NdisMAllocateSharedMemory volána ve funkci MiniportInitializeEx , ovladač by měl také NdisWriteErrorLogEntry volat, pokud přidělení selže. |
Výběr sady pravidel Různé
Vyberte projekt ovladače (.vcxProj) v aplikaci Microsoft Visual Studio. V nabídce Ovladač klepněte na Spustit statický ověřovatel ovladače....
Klikněte na kartu Pravidla . V části Sady pravidel vyberte Různé.
Chcete-li vybrat výchozí sadu pravidel z okna příkazového řádku pro vývojáře sady Visual Studio, zadejte ostatní.sdv s možností /check . Například:
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Další informace naleznete v tématu Použití statického ověřovače ovladačů k nalezení vad v ovladačích a příkazy MSBuild (Statický ověřovač ovladačů).