Sdílet prostřednictvím


Programování zařízení pro vstupně-výstupní operaci

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í.