我有一个 kmdf 总线驱动程序 PCI\VEN_XXXX&DEV_XXXX,它创建两个具有序列号的静态枚举 PDO:217 和 218;每个以太网端口一个。PDO 硬件 ID 是 ROOT\MY_NIC_PORT,因此我可以在它们上安装 NDIS Miniport 驱动程序。
总线驱动通过SDV和Verifier;但是,在重新启动时会枚举另外两个 PDO。在下一次重新启动时,我得到一个重复的 pdo 崩溃。
烤面包机示例使用设备类 guid 作为硬件 ID 的一部分。当我尝试我的 NIC 端口不再出现在设备管理器中时。
任何调试建议或解决想法将不胜感激?
pnpCaps.LockSupported = WdfFalse;
pnpCaps.EjectSupported = WdfTrue;
pnpCaps.Removable = WdfTrue;
pnpCaps.DockDevice = WdfFalse;
pnpCaps.UniqueID = WdfTrue;
pnpCaps.SilentInstall = WdfTrue;
pnpCaps.SurpriseRemovalOK = WdfTrue;
pnpCaps.HardwareDisabled = WdfFalse;
pnpCaps.NoDisplayInUI = WdfFalse;
pnpCaps.Address = SerialNo;
pnpCaps.UINumber = SerialNo;
************************************************************
Driver Verifier detected violation:
A driver has enumerated two child PDO's that returned identical Device
ID's.
CulpritAddress = FFFFF8025ED309C4, DeviceObject1 = FFFFE3882FB2F300,
DeviceObject2 = FFFFE3882EBF88D0.
************************************************************