Como o Windows sabe qual adaptador de rede é um dispositivo sem fio?

3

Estou tentando e tentando encontrar um valor no registro ou por meio do WMI (com wbemtest), que informa que esse adaptador de rede usa uma conexão sem fio. Há valores na classe WMI Win32_NetworkAdapter como AdapterType, mas eles estão apenas informando que é um dispositivo Ethernet. Em outro computador, quando eu consultar essa classe, recebo uma entrada WiFi_NetworkAdapter, mas acho que isso depende de como o fornecedor do driver a implementou. Eu até tentei encontrar algo no registro, mas não consegui encontrar nada. A única parte em que posso ver que este é um dispositivo sem fio é quando eu estou olhando para o nome e descrição, mas para ser honesto, isso não é uma boa solução. No Windows XP, encontrei uma chave de registro com um campo "MediaSubType" em

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{GUID}\Connection

mas no Windows 7 essa chave parece não ser obrigatória.

Qualquer outra solução além do Registry ou do WMI também é muito apreciada, mas lembre-se de que não quero usar ferramentas de terceiros, porque mais tarde eu quero escrever um pequeno programa em C ++.

    
por seveves 12.07.2013 / 11:58

1 resposta

2

Veja o valor MediaSubType DWORD. Se MediaSubtype = 2, o adaptador de rede é um dispositivo sem fio.

powershell gci 'hklm:SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}' -rec ^| gp ^| FT MediaSubtype, Name, PnpInstanceID -Au

Ou obtenha a estrutura _MIB_IF_ROW2 , veja NDIS_PHYSICAL_MEDIUM.

Também pode usar PnpInstanceID e Repositório de IDs PCI (banco de dados) ou Fornecedor de PCI e listas de dispositivos (info) .

Veja a lista de todas as nossas conexões sem fio e suas forças de sinal:

wmic /NAMESPACE:\ROOT\wmi path MSNdis_80211_ReceivedSignalStrength get *
    
por 12.07.2013 / 12:35