Настройки сетевого интерфейса во встроенной Windows XP - PullRequest
3 голосов
/ 19 декабря 2008

Как мы можем получить имя сетевого интерфейса (то есть, которое появляется в диалоговом окне «Сетевые подключения») с учетом описания устройства (то есть строка, которая появляется в текстовом поле «Свойства устройства -> Подключиться с помощью:»)?

Мы должны сделать это на чистом языке C / C ++ или с помощью некоторых стандартных инструментов командной строки (например, netsh, ipconfig ...) или их комбинации.

Мы не можем использовать .NET API из-за проблем развертывания (приложение должно работать на XP, встроенной без .NET Framework).

SDK API GetIfTable и GetIfEntry кажутся многообещающими, но в нашей системе все поля MIB_IFROW заполнены правильно, кроме поля "wszName", которое остается неинициализированным.

Ответы [ 3 ]

1 голос
/ 07 октября 2009

Мне удалось сделать это через реестр. Используя GetAdaptersInfo (), который дает вывод IP_ADAPTER_INFO, возьмите строку AdapterName. Это должен быть GUID для адаптера. Для (по крайней мере, ipv4) в разделе HKLM \ SYSTEM \ CurrentControlSet \ Control \ Network {4D36E972-E325-11CE-BFC1-08002BE10318} \ {* ВСТАВЬТЕ ГИД ГИДА * } \ Connection, значение Имя должно содержать «дружественное» имя сети.

0 голосов
/ 22 декабря 2008

Лучше всего использовать вызовы Win32 API, известные под общим названием " IP Helper ". Это даст вам почти всю ту же информацию, которую вы могли бы получить с помощью вызова «ipconfig» из CLI.

В частности, я бы начал с рассмотрения функции " GetAdaptersInfo ".

И, конечно, начиная с этой части Win32 API, вы можете использовать чистый C / C ++ без необходимости разбора вывода из сторонней утилиты.

0 голосов
/ 19 декабря 2008

Мне придется перепроверить, но я думаю, что это может быть где-то в реестре ... Я вернусь к этому.

HKLM / система / CurrentControlSet / управления / сеть

может помочь.

Я не нашел точно то, о чем думал, извините

EDIT Это тоже может помочь:

http://www.java2s.com/Tutorial/CSharp/0520__Windows/Getthenetworkdevicenamedeviceservicename.htm

в частности: HKLM \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards \

Я не знаю, гарантированно ли это для будущего или нет "одобренного" метода, но, похоже, он содержит необходимую информацию.

...