检测PnPEntity插入

时间:2011-10-28 17:55:10

标签: .net wmi

我在C#中使用ManagementEventWatcher来监控WMI PnPEntity事件。我的查询是这样的: “SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA'Win32_PnPEntity'”

当我插入已插入PC的特定设备时,会引发事件并且一切正常。但是,如果我插入相同类型的新硬件(即PID和VID相同,但是新的DeviceID),则立即引发事件,但ConfigManagerErrorCode == 1(“未正确配置设备”)

然后将为设备安装驱动程序,如果我移除设备并重新插入,一切都很好。

如何检测驱动程序何时完成安装?除__InstanceCreationEvent外还有更好的事件要注意吗?

由于

1 个答案:

答案 0 :(得分:0)

您是否尝试过__InstanceModificationEvent并在配置新设备时抛出第一个?

如果您正在查看特定设备(如NIC或硬盘驱动器),您可能希望在其他类上查找事件,因为您正在查看的事件相当广泛。

还有其他一些P / Invoke选项herehere(必须将c ++转换为c#)