Intermediate Driver DriverEntry – funkce
Počáteční požadovaný vstupní bod zprostředkujícího ovladače musí být explicitně pojmenován DriverEntry, aby ho zavaděč mohl správně identifikovat. Všechny ostatní exportované funkce ovladačů, které jsou popsány v této části jako MiniportXxx a ProtocolXxx, mohou mít libovolný název zadaný dodavatelem, protože jsou předány jako adresy NDIS.
V přechodném ovladači musí DriverEntry minimálně:
Zavolejte NdisMRegisterMiniportDriver a uložte popisovač, který je vrácen v parametru NdisMiniportDriverHandle.
Voláním NdisRegisterProtocolDriver zaregistrujte funkce ProtocolXxx ovladače, pokud se ovladač následně spojí s podkladovým ovladačem NDIS.
Zavolejte NdisIMAssociateMiniport, aby informoval NDIS o přidružení mezi vrchním okrajem miniportu ovladače a dolní hranou protokolu.
Zprostředkující ovladač musí zaregistrovat MiniportDriverUnload obslužnou rutinu uvolnění. Tato obslužná rutina se volá, když systém uvolňuje zprostředkující ovladač. Pokud DriverEntry selže, tato obslužná rutina uvolnění se nevolá; místo toho je ovladač jednoduše uvolněn. Další informace o obslužné rutině pro uvolnění naleznete v tématu Uvolnění zprostředkujícího ovladače.
Obslužná rutina unload by měla volat NdisDeregisterProtocolDriver k odregistrování protokolové části zprostředkujícího ovladače. Obslužná rutina uvolnění by také měla provádět všechny nezbytné operace čištění, jako je například přidělení prostředků používaných částí protokolu ovladače.
Všimněte si, že obslužná rutina pro uvolnění se liší od funkce MiniportHaltEx: obslužná rutina pro uvolnění má globální obor a rozsah funkce MiniportHaltEx je omezený na konkrétní adaptér miniportu. Meziovladač by měl uvolnit informace o stavu a znovu přidělit prostředky, když se zastaví každý základní miniportový ovladač, který je s ním svázán. Informace o zpracování operace zastavení virtuálních miniportů najdete v tématu Zastavení virtuálního miniportu.
ProtocolUninstall je volitelný obslužný proces pro odinstalaci. Zaregistrujte vstupní bod pro tuto funkci ve struktuře ProtocolCharacteristics, kterou předáváte NdisRegisterProtocolDriver. NDIS volá ProtocolUninstall v reakci na žádost uživatele o odinstalaci zprostředkujícího ovladače. NDIS volá ProtocolUnbindAdapterEx jednou pro každý vázaný adaptér a pak NDIS volá ProtocolUninstall. Tato obslužná rutina se volá před tím, než systém skutečně uvolní ovladač. Toto načasování poskytuje možnost uvolnit všechny objekty zařízení nebo jiné prostředky, které by jinak mohly zabránit systému v volání obslužné rutiny uvolnění, která je zaregistrovaná v NdisMRegisterMiniportDriver a uvolnění ovladače.
DriverEntry může inicializovat spin locky, aby chránil všechny globálně sdílené prostředky, které mezilehlý ovladač přiděluje, jako jsou proměnné stavu, struktury a oblasti paměti. Ovladač tyto prostředky používá ke sledování připojení a ke sledování probíhajících odesílání nebo front odesílání přidělených ovladačem.
Pokud DriverEntry nepřidělí žádné prostředky, které ovladač potřebuje k provádění síťových vstupně-výstupních operací, měl by uvolnit všechny dříve přidělené prostředky a vrátit odpovídající stav chyby.
Následující témata dále popisují, jak registrovat zprostředkující ovladače:
Registrace jako zprostředkujícího ovladače NDIS
Registrace zprostředkujícího ovladače jako miniportového ovladače
Registrace zprostředkujícího ovladače jako protokolového ovladače