MSNdis_StatusMediaDisconnect и уникальное имя устройства - PullRequest
4 голосов
/ 21 декабря 2009

Я использую ManagementEventWatcher для наблюдения за отключением сетевого кабеля с помощью System.Management.

ManagementEventWatcher с WQL: SELECT * FROM MSNdis_StatusMediaDisconnect,
и следующий метод запускается, когда EventArrived:

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);
}

Проблема:
У меня есть 2 сетевых интерфейса от одного производителя, и в обоих случаях InstanceName имеет одинаковое значение, и я не могу определить, какая сеть отключена!

Я перепробовал все свойства из EventArrivedEventArgs, но у них нет идентификатора ограничения для устройства ... как идентификатор устройства.

Как узнать, что сетевой интерфейс ведьмы отключен?

1 Ответ

0 голосов
/ 27 декабря 2009

Посмотрите на "Win32_NetworkAdapter.NetConnectionID". Это - на моей машине [!!] - та же самая строка, которую вы увидите в сетевых подключениях [панель управления], и она должна иметь то же значение, которое появляется в "MSNdis_EnumerateAdapter.InstanceName =".

Может быть, это помогает!?

ш - mabra

...