Creación de controladores de minipuerto de KMDF

Algunos controladores de minipuerto pueden usar Kernel-Mode Driver Framework, si la arquitectura del puerto o miniport permite que el controlador de miniporte se comunique con otros controladores mediante el uso de interfaces WDM o framework. Por ejemplo, los controladores de minipuerto de NDIS con un borde inferior de WDM pueden usar el marco para implementar el borde inferior.

Si desea que el controlador de miniporte use el marco, el controlador debe:

  • Establezca la marca WdfDriverInitNoDispatchOverride en el miembro DriverInitFlags de la estructura WDF_DRIVER_CONFIG del controlador antes de llamar a WdfDriverCreate. Al establecer esta marca, el controlador de puerto, en lugar del marco, intercepta los paquetes de solicitud de E/S (IRP) que el administrador de E/S ha dirigido al controlador.

  • Llame a WdfDeviceMiniportCreate en lugar de WdfDeviceCreate para crear objetos de dispositivo de marco para los dispositivos del controlador de miniport. El controlador de minipuerto debe llamar a WdfDeviceMiniportCreate cuando su controlador de puerto le informa de que un dispositivo está disponible.

  • Llame a WdfObjectDelete para eliminar el objeto de dispositivo que WdfDeviceMiniportCreate crea, cuando el controlador determina que se ha quitado el dispositivo. (Dado que el controlador ha establecido la marca WdfDriverInitNoDispatchOverride , el marco no puede determinar cuándo se quita el dispositivo y no puede eliminar el objeto de dispositivo).

  • Llame a WdfDriverMiniportUnload cuando el controlador de puerto informe al controlador de miniporte que está a punto de descargarse.

Un controlador de minipuerto solo puede usar el marco si el dispositivo subyacente admite Plug and Play (PnP). Los controladores miniport no pueden usar los objetos de dispositivo de control del marco.

Las restricciones se aplican a los objetos de dispositivo que crea el método WdfDeviceMiniportCreate . Para obtener una lista de estas restricciones, consulte WdfDeviceMiniportCreate.