Класс Win32_NetworkAdapter возвращает NULL для логического значения NetEnabled;

#c #windows #winapi #networking #wmi

#c #Windows #winapi #сеть #wmi

Вопрос:

Я использую этот пример WMI: http://msdn.microsoft.com/en-us/library/aa390423(v=vs.85).aspx

Я извлек информацию из класса Win32_NetworkAdapter, такую как имя и MacAddress;

Однако, когда я получаю boolean NetEnabled; вариант vtProp равен NULL?

Любые предложения будут оценены. Спасибо. (Windows XP)

 while (pEnumerator)                     
{
    HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, 
        amp;pclsObj, amp;uReturn);

    if(0 == uReturn)
    {
        break;
    }

    VARIANT vtProp;

    // Get the value of the Name property
    hr = pclsObj->Get(L"NetEnabled", 0, amp;vtProp, 0, 0); //nothing filled into vtProp?
    wcout << " Net Enabled: " << vtProp.boolVal << endl;
  

Ответ №1:

Из документации, на которую вы ссылались:

NetEnabled

Тип данных: логическое значение

Тип доступа: только для чтения

Указывает, включен адаптер или нет. Если значение True, адаптер включен. Вы можете включить или отключить сетевой адаптер, используя методы Enable и Disable.

Windows Server 2003, Windows XP, Windows 2000 и Windows NT 4.0: это свойство недоступно.

Ответ №2:

NetEnabled свойство недоступно в Windows xp, попробуйте вместо него использовать NetConnectionStatus свойство.