Erstellen von KMDF-Miniporttreibern

Einige Miniporttreiber können Kernel-Mode Driver Framework verwenden, wenn die Port-/Miniportarchitektur es dem Miniporttreiber ermöglicht, mithilfe von WDM- oder Frameworkschnittstellen mit anderen Treibern zu kommunizieren. Beispielsweise können NDIS-Miniporttreiber mit einem unteren WDM-Rand das Framework verwenden, um den unteren Rand zu implementieren.

Wenn Ihr Miniporttreiber das Framework verwenden soll, muss der Treiber Folgendes ausführen:

  • Legen Sie das WdfDriverInitNoDispatchOverride-Flag im DriverInitFlags-Member der WDF_DRIVER_CONFIG Struktur des Treibers fest, bevor Sie WdfDriverCreate aufrufen. Durch Festlegen dieses Flags kann der Porttreiber anstelle des Frameworks E/A-Anforderungspakete (IRPs) abfangen, die der E/A-Manager an den Treiber weitergeleitet hat.

  • Rufen Sie WdfDeviceMiniportCreate anstelle von WdfDeviceCreate auf , um Frameworkgeräteobjekte für die Geräte des Miniporttreibers zu erstellen. Der Miniporttreiber sollte WdfDeviceMiniportCreate aufrufen, wenn sein Porttreiber ihn darüber informiert, dass ein Gerät verfügbar ist.

  • Rufen Sie WdfObjectDelete auf, um das von WdfDeviceMiniportCreate erstellte Geräteobjekt zu löschen, wenn der Treiber feststellt, dass das Gerät entfernt wurde. (Da der Treiber das WdfDriverInitNoDispatchOverride-Flag festgelegt hat, kann das Framework nicht ermitteln, wann das Gerät entfernt wird, und kann das Geräteobjekt nicht löschen.)

  • Rufen Sie WdfDriverMiniportUnload auf, wenn der Porttreiber den Miniporttreiber darüber informiert, dass er entladen werden soll.

Ein Miniporttreiber kann das Framework nur verwenden, wenn das zugrunde liegende Gerät Plug & Play (PnP) unterstützt. Miniporttreiber können die Geräteobjekte des Frameworks nicht verwenden.

Einschränkungen gelten für die Geräteobjekte, die von der WdfDeviceMiniportCreate-Methode erstellt werden. Eine Liste dieser Einschränkungen finden Sie unter WdfDeviceMiniportCreate.