支持在仅限软件的驱动程序中进行 PnP 和电源管理
仅限软件的驱动程序 是无法访问任何硬件的驱动程序。 某些仅限软件的驱动程序驻留在无法访问硬件的驱动程序堆栈中。 由于这些驱动程序无法访问硬件,因此它们通常不必执行任何 PnP 或电源管理操作。
其他仅限软件的驱动程序是筛选器驱动程序:它们驻留在访问硬件的驱动程序堆栈中,但筛选器驱动程序不访问硬件。 当筛选器驱动程序收到指定 PnP 或电源管理操作的 I/O 请求时,驱动程序通常只是将请求传递给下一个驱动程序。 框架截获并传递这些请求,因此基于框架的驱动程序永远不会看到这些请求。
如果要编写仅限软件的驱动程序,驱动程序 会创建设备对象 ,但通常不需要提供任何事件回调函数来处理 PnP 或电源管理事件。 如果驱动程序使用框架队列对象,则需要将队列WDF_IO_QUEUE_CONFIG结构的 PowerManaged 成员设置为 WdfFalse 或 WdfUseDefault。
一些仅限软件的驱动程序也是 功能驱动程序。 换句话说,单个驱动程序可以充当仅限软件的驱动程序来支持无法访问硬件的虚拟设备,并充当功能驱动程序来支持硬件设备。