我试图让WDK7烤面包机的母线设备和子设备共享一个.sys驱动程序文件。我将busenum.sys和toaster.sys组合成一个Nls_ufcom.sys(bus.inf和toaster.inf都与服务二进制文件指向相同的Nls_ufcom.sys),但Windows在为子设备报告错误38(CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD)之后我从设备管理器分配toaster.inf作为驱动程序。所以,AddDevice()回调甚至不会被子设备调用。是否有两种不同的Windows设备可以共享相同的.sys驱动程序文件?
我不确定我是否做错了什么,或者Windows真的不允许这样做。希望从你那里得到一些想法,谢谢。
我的经验是,WDF不鼓励开发者为多个设备设置类创建单个功能驱动程序。您始终可以安装驱动程序的多个副本,每个副本都包含一个设备类的INF文件。也可以将整个逻辑放入产生原始PDO(不需要功能驱动程序的PDO)的(虚拟)总线驱动程序中。您可以使驱动程序充当多个设备类的较低/较高过滤器。 –