在启动/引导阶段处理__InstanceCreationEvent

时间:2019-09-23 15:50:13

标签: c# windows-services wmi

我有一个C#应用程序正在处理系统的即插即用设备。我正在处理新插入的设备,可以通过向以下查询中添加事件观察器来做到这一点:

WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity'");

ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);
insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInsertedEvent);
insertWatcher.Start();

我的问题是,如果要将应用程序转换为Windows服务,是否可以使用相同的方法来处理所有即插即用设备?更具体地说,是在Windows启动/设置阶段发现的设备触发所有插入事件,还是在检测/插入设备之后稍后才真正启动Windows服务?

我知道我可以使用“ Select * From Win32_PnPEntity”之类的查询来扫描当前连接的PnPDevices,但是我对事件方法更感兴趣。

0 个答案:

没有答案