Initialisieren eines Miniporttreibers mit einem unteren WDM-Edge
Nachdem ein Miniporttreiber vom Betriebssystem geladen wurde, ruft NDIS die Miniport-Treiberfunktion MiniportInitializeEx auf, um einen Miniport instance zu initialisieren, den der Miniporttreiber verwaltet. Um über einen Miniport instance zu kommunizieren, der über eine WDM-Unterkante verfügt, muss der Miniporttreiber bestimmte Informationen abrufen, um seine Kommunikation einzurichten.
Während der Initialisierung dieses Miniport-instance muss der Miniporttreiber die Funktion NdisMGetDeviceProperty aufrufen, um Geräteobjekte abzurufen, die zum Einrichten der Kommunikation mit dem Miniport-instance über eine WDM-Schnittstelle erforderlich sind. In diesem Aufruf übergibt der Miniporttreiber das Handle an die miniport-instance im MiniportAdapterHandle-Parameter und Puffer, die Zeiger auf DEVICE_OBJECT Strukturen empfangen. Der Miniporttreiber verwendet den abgerufenen Zeiger auf das Next-Device-Objekt ( NextDeviceObject-Parameter ), um IRPs zu erstellen und zu übermitteln. Weitere Informationen finden Sie unter Behandeln von IRPs.
Ein Miniporttreiber mit einer WDM-Unterkante muss ein deserialisierter Miniporttreiber sein. Ein deserialisierter Miniporttreiber verwaltet seine eigene Warteschlange mit internen Sende- und Empfangsanforderungen, wenn er über genügend Ressourcen verfügt, um diese Anforderungen sofort zu verarbeiten. wenn ein Miniporttreiber nicht deserialisiert wird, verwaltet NDIS diese Warteschlange. Ein NDIS-WDM-Miniporttreiber muss deserialisiert werden, da er Pakete außerhalb des Kontexts von NDIS-Aufrufen sendet und empfängt. Während der Initialisierung eines Miniports instance muss ein NDIS-WDM-Miniporttreiber das deserialisierte Feature angeben. Alle Miniporttreiber NDIS 6.0 und höher werden deserialisiert.
Beachten Sie, dass ein NDIS-WDM-Miniporttreiber kein Zwischentreiber sein kann (ein Treiber, der oben eine Miniporttreiberschnittstelle und unten eine Protokolltreiberschnittstelle verfügbar macht).