Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MSNdis_状态MediaDisconnect和设备唯一名称_C#_Wmi_Wql - Fatal编程技术网

C# MSNdis_状态MediaDisconnect和设备唯一名称

C# MSNdis_状态MediaDisconnect和设备唯一名称,c#,wmi,wql,C#,Wmi,Wql,我正在使用ManagementEventWatcher使用System.Management监视网线断开 使用WQL的ManagementEventWatcher:从MSNdis\u StatusMediaDisconnect中选择*, 当事件到达时,将触发以下方法: private void ServiceNetWorkStatusWmiDisconnected(object sender, EventArrivedEventArgs args) { string instanceNa

我正在使用ManagementEventWatcher使用System.Management监视网线断开

使用WQL的ManagementEventWatcher:
从MSNdis\u StatusMediaDisconnect中选择*,
当事件到达时,将触发以下方法:

private void ServiceNetWorkStatusWmiDisconnected(object sender, EventArrivedEventArgs args)
{
    string instanceName = args.NewEvent.Properties["InstanceName"].Value as string;
    ServiceNetWorkStatusWmi = string.Format("Network disconnected ({0})", instanceName);
    Console.WriteLine(ServiceNetWorkStatusWmi);
}
问题是:
我有两个网络接口,来自同一个制造商,两种情况下,InstanceName具有相同的值,我无法识别哪个网络被拔出

我尝试了EventArrivedEventArgs中的所有属性,但它们没有设备的约束id。。。就像一个设备Id

我怎样才能知道网络接口是否已拔出?

请查看“Win32\u NetworkAdapter.NetConnectionID”。这是-在我的机器上[!!]-您将在网络连接[控制面板]中看到的相同字符串,它应该是相同的值,如“MSNdis_EnumerateAdapter.InstanceName=”中所示

也许,这有帮助


br--mabra

mabra,如果我对Win32_NetworkAdapter执行另一个WQL,我可以查看断开连接的NetConnectionId。。。但问题是当MSNdis_StatusMediaDisconnect事件到达时,我在对象发送方上没有AdapterId,在EventArrivedEventArgs上也没有!!!!那太糟糕了!!!因此,当事件到达时,我必须执行另一个WQL以了解netadapter。。。我认为这不是个好办法。。。