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.
Pro navrhování, psaní a volání rutin SynchCritSection , které programují zařízení pro vstupně-výstupní operace, použijte následující obecné pokyny:
Rutina SynchCritSection , která programuje zařízení pro vstupně-výstupní operace, musí co nejrychleji vrátit kontrolu.
Z tohoto důvodu by rutina SynchCritSection měla provádět pouze to, co je nezbytné k nastavení zařízení pro vstupně-výstupní operace. Ovladač by proto měl provést veškeré předběžné zpracování protokolu IRP, inicializovat informace o stavu pro jiné rutiny ovladačů a získat hardwarové prostředky před voláním rutiny SynchCritSection .
Ovladač zařízení může mít několik rutin SynchCritSection pro programování zařízení.
Například ovladač zařízení, pro které se nastavení žádosti o čtení výrazně liší od nastavení určitých požadavků na řízení zařízení, mohou mít samostatné rutiny SynchCritSection pro programování zařízení pro každý typ požadavku.
Každá rutina SynchCritSection musí co nejrychleji vrátit řízení, protože spuštění jakékoli rutiny SynchCritSection brání spuštění ISR ovladače.
Neměli byste psát jednu, velkou, univerzální synchCritSection rutinu s příkazem switch nebo mnoho vnořených if.. potom.. příkazy else určují, jaké operace budou provádět nebo jaké informace o stavu se mají aktualizovat. Na druhou stranu byste se měli vyhnout psaní mnoha rutin SynchCritSection , které programují pouze jeden registr zařízení.