Sdílet prostřednictvím


Úvod do standardních rutin ovladačů

Každý ovladač v režimu jádra je sestavený podle sady systémově definovaných standardních rutin ovladačů. Ovladače v režimu jádra zpracovávají pakety vstupně-výstupních požadavků (IRPs) v rámci těchto standardních rutin voláním rutin podpory ovladačů dodaných systémem.

Všechny ovladače, bez ohledu na jejich úroveň v řetězu připojených ovladačů, musí mít základní sadu standardních rutin, aby bylo možné zpracovat irps. Zda ovladač musí implementovat další standardní rutiny, závisí na tom, zda ovladač řídí fyzické zařízení nebo je vrstvený nad ovladačem fyzického zařízení a také na povaze základního fyzického zařízení. Ovladače nejnižší úrovně, které řídí fyzická zařízení, mají více požadovaných rutin než ovladače vyšší úrovně, které obvykle předávají irp nižšímu ovladači pro zpracování.

Standardní rutiny ovladačů lze rozdělit do dvou skupin: ty, které musí mít každý ovladač v režimu jádra, a ty, které jsou volitelné, v závislosti na typu a umístění ovladače v zásobníku zařízení.

Následující tabulka obsahuje seznam povinných standardních rutin.

Požadované standardní rutiny ovladačů Účel Kde je popsáno
DriverEntry Inicializuje ovladač a objekt daného ovladače. zápis rutiny DriverEntry
PřidatZařízení Inicializuje zařízení a vytvoří objekty zařízení. Tvorba procedury AddDevice
rutiny dispatch Příjem a zpracování irp. psaní dispečerských procedur
Uvolnění Uvolněte systémové prostředky získané ovladačem. Vytvoření rutiny pro uvolnění

Následující tabulka uvádí několik volitelných rutin.

Volitelné standardní rutiny ovladačů Účel Kde je popsáno
znovu inicializovat Dokončí inicializaci ovladačů, pokud DriverEntry nemůže. Zápis rutiny pro znovu inicializaci
StartIo Spustí vstupně-výstupní operaci na fyzickém zařízení. Psaní rutiny StartIo
Přerušení rutiny služby Uloží stav zařízení, když se přeruší. Psaní ISR
Odložená volání procedur Dokončí zpracování přerušení zařízení poté, co ISR uloží stav zařízení. objekty DPC a DPCs
synchCritSection Synchronizuje přístup k datům ovladačů. Používání kritických sekcí
AdapterControl Inicializuje operace DMA. Objekty adaptérů a DMA
IoCompletion Dokončí zpracování protokolu IRP ovladače. Dokončení IRP
Zrušit Zruší zpracování protokolu IRP ovladače. Zrušení IRPs
CustomTimerDpc, IoTimer Časování a synchronizace událostí Techniky synchronizace

Aktuální objekt IRP a cílového zařízení jsou vstupními parametry mnoha standardních rutin. Každý ovladač zpracovává jednotlivé IRP ve fázích prostřednictvím své sady standardních rutin.

Podle konvence ovladače dodané systémem přidávají na začátek názvu identifikující, specifickou pro ovladač nebo zařízení předponu ke jménu každé standardní rutiny s výjimkou DriverEntry. Například tato dokumentace používá "DD", jak je znázorněno na obrázku v Úvod k objektům ovladačů. Dodržování této konvence usnadňuje ladění a údržbu ovladačů.