【发布时间】:2016-08-23 16:44:35
【问题描述】:
我正在尝试让 WDK7 Toaster 的总线设备和子设备共享同一个 .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 真的不允许这样做。希望从你那里得到一些想法,谢谢。
【问题讨论】:
-
我的经验是,WDF 不鼓励开发人员为多个设备设置类制作单个功能驱动程序。您始终可以安装驱动程序的多个副本,每个副本都包含一个设备类的 INF 文件。也可以将整个逻辑放入生成原始 PDO(不需要功能驱动程序的 PDO)的(虚拟)总线驱动程序中。您可以制作一个驱动程序,作为多个设备类的下/上过滤器。
标签: windows driver device-driver