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.
Dočasný ovladač NDIS registruje funkce MiniportXxx a jeho funkce ProtocolXxx v kontextu rutiny DriverEntry . Pokud chcete zaregistrovat funkce MiniportXxx , musí zprostředkující ovladač volat funkci NdisMRegisterMiniportDriver s nastaveným příznakem NDIS_INTERMEDIATE_DRIVER. Tento příznak je ve struktuře NDIS_MINIPORT_DRIVER_CHARACTERISTICS , kterou ovladač předává na MiniportDriverCharacteristics. Pokud chcete zaregistrovat funkce ProtocolXxx , musí zprostředkující ovladač volat funkci NdisRegisterProtocolDriver .
DriverEntry vrátí STATUS_SUCCESS nebo jeho ekvivalentní NDIS_STATUS_SUCCESS, pokud se ovladač úspěšně zaregistroval jako zprostředkující ovladač NDIS. Pokud DriverEntry selže inicializace rozšířením chybového stavu vráceného funkcí NdisXxx nebo rutinou podpory režimu jádra, ovladač nezůstane načten. DriverEntry musí být spuštěn synchronně; to znamená, že nemůže vrátit STATUS_PENDING ani jeho ekvivalentní NDIS_STATUS_PENDING.
K registraci zprostředkujícího ovladače u NDIS musí rutina DriverEntry minimálně:
- Volejte funkci NdisMRegisterMiniportDriver s příznakem NDIS_INTERMEDIATE_DRIVER nastaveným pro registraci funkcí MiniportXxx ovladače.
- Zavolejte funkci NdisRegisterProtocolDriver , která zaregistruje funkce ProtocolXxx ovladače, pokud se ovladač následně sváže s podkladovým ovladačem NDIS.
- Zavolejte funkci NdisIMAssociateMiniport , která informuje NDIS o přidružení mezi horním okrajem miniportu řidiče a dolním okrajem protokolu.
Pokud dojde k chybě v DriverEntry po úspěšném návratu z NdisMRegisterMiniportDriver, ovladač musí zavolat funkci NdisMDeregisterMiniportDriver před tím, než DriverEntry vrátí. Pokud DriverEntry proběhne úspěšně, ovladač musí volat NdisMDeregisterMiniportDriver ze své funkce MiniportDriverUnload.
Zprostředkující ovladače sdílejí většinu požadavků DriverEntry ovladačů protokolu a ovladačů miniportu.
Inicializace virtuálního miniportu zprostředkujícího ovladače nastane, když ovladač volá funkci NdisIMInitializeDeviceInstanceEx z funkce ProtocolBindAdapterEx .
NDIS volá funkci ProtocolBindAdapterEx po inicializaci všech základních ovladačů miniportu.
Funkce DriverEntry zprostředkujícího ovladače NDIS může po předání ukazatele RegistryPath do NdisMRegisterMiniportDriver tento ukazatel ignorovat. Takový ovladač může také ignorovat ukazatel DriverObject po jeho předání do NdisMRegisterMiniportDriver. Ovladač by však měl uložit hodnotu popisovače miniportu vrácenou NdisMRegisterMiniportDriver na NdisMiniportDriverHandle a hodnotu popisovače protokolu vrácenou NdisRegisterProtocolDriver v NdisProtocolHandle pro následné volání funkcí NdisXxx . Funkce ProtocolBindAdapterEx zprostředkujícího ovladače sváže ovladač s každým podkladovým miniportovým ovladačem před zavolání funkce MiniportInitializeEx pro inicializaci virtuálního miniportu zprostředkujícího ovladače. Ovladače protokolu vyšší úrovně se následně svážou s virtuálním miniportem, který vytvářejí. Tato strategie umožňuje zprostředkujícímu ovladači NDIS přidělit prostředky při vytváření virtuálního miniportu podle vlastností základního ovladače miniportu, ke kterému je vázán.