我試圖讓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)的(虛擬)總線驅動程序中。您可以使驅動程序充當多個設備類的較低/較高過濾器。 –