创建 KMDF 微型端口驱动程序

如果端口/微型端口体系结构允许微型端口驱动程序使用 WDM 或框架接口与其他驱动程序通信,则某些微型端口驱动程序可以使用 Kernel-Mode 驱动程序框架。 例如, 具有 WDM 下边缘的 NDIS 微型端口驱动程序 可以使用框架来实现下边缘。

如果希望微型端口驱动程序使用框架,驱动程序必须:

  • 在调用 WdfDriverCreate 之前,在驱动程序WDF_DRIVER_CONFIG结构的 DriverInitFlags 成员中设置 WdfDriverInitNoDispatchOverride 标志。 设置此标志可让端口驱动程序(而不是框架)截获 I/O 管理器已定向到驱动程序 (IRP) I/O 请求数据包。

  • 调用 WdfDeviceMiniportCreate 而不是 WdfDeviceCreate ,为微型端口驱动程序的设备创建框架设备对象。 当微型端口驱动程序通知其设备可用时,微型端口驱动程序应调用 WdfDeviceMiniportCreate

  • 当驱动程序确定设备已删除时,调用 WdfObjectDelete 以删除 WdfDeviceMiniportCreate 创建的设备对象。 (由于驱动程序已设置 WdfDriverInitNoDispatchOverride 标志,框架无法确定何时删除设备,并且无法删除设备 object.)

  • 当端口驱动程序通知微型端口驱动程序即将卸载它时,调用 WdfDriverMiniportUnload

仅当基础设备支持即插即用 (PnP) 时,微型端口驱动程序才能使用该框架。 微型端口驱动程序不能使用框架的控制设备对象。

限制适用于 WdfDeviceMiniportCreate 方法创建的设备对象。 有关这些限制的列表,请参阅 WdfDeviceMiniportCreate