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.
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čů.