Функция GetNetworkParams.
Функция GetNetworkParams позволяет узнать
сетевые настройки локального компьютера.
Внимание: Для использования этой
функции необходимо, чтобы был установлен Platform SDK!
DWORD GetNetworkParams(
PFIXED_INFO pFixedInfo,
PULONG pOutBufLen
);
Параметры
- pFixedInfo
- Указатель на структуру FIXED_INFO
в которой после вызова функции будут находиться
сетевые настройки локального компьютера.
- pOutBufLen
- Указатель на переменную ULONG которая
содержит размер структуры FIXED_INFO.
Если размер недостаточен для хранения
информации, то GetNetworkParams возвращает в этой
переменной требуемый размер, а так же возвращает
код ошибки ERROR_BUFFER_OVERFLOW.
Возвращаемое значение
В случае успеха, функция должна вернуть ERROR_SUCCESS.
В случае ошибки, функция вернёт одно из
следующих значений.
Значение |
Описание |
ERROR_BUFFER_OVERFLOW |
Размер буфера, указанный в переменной pOutBufLen
недостаточен для хранения информации. Параметр pOutBufLen
указывает на требуемый размер. |
ERROR_INVALID_PARAMETER |
Параметр pOutBufLen равен NULL, либо
вызывающий процесс не имеет прав на
запись/чтение в памяти по адресу pOutBufLen, либо
вызывающий процесс не имеет прав на запись в
памяти по адресу pAdapterInfo. |
ERROR_NO_DATA |
Функции не удалось получить информацию. |
ERROR_NOT_SUPPORTED |
GetNetworkParams не поддерживается
данной операционной системой. |
другое |
В случае ошибки, воспользуйтесь
функцией FormatMessage
для получения подробной строки об ошибке. |
Пример использования функции
//
// Не забудьте подключить к проекту IPHlpAPI.lib
//
#include <stdio.h>
#include <windows.h>
#include <iphlpapi.h>
main() {
FIXED_INFO * FixedInfo;
ULONG ulOutBufLen;
DWORD dwRetVal;
IP_ADDR_STRING * pIPAddr;
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );
ulOutBufLen = sizeof( FIXED_INFO );
if(ERROR_BUFFER_OVERFLOW == GetNetworkParams(FixedInfo, &ulOutBufLen)) {
GlobalFree( FixedInfo );
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );
}
if ( dwRetVal = GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
printf( "GetNetworkParams failed. Return Value: %08x\n", dwRetVal);
}
else {
printf( "Host Name: %s\n", FixedInfo -> HostName );
printf( "Domain Name: %s\n", FixedInfo -> DomainName );
printf( "DNS Servers:\n" );
printf( "\t%s\n", FixedInfo -> DnsServerList.IpAddress.String );
pIPAddr = FixedInfo -> DnsServerList.Next;
while ( pIPAddr ) {
printf( "\t%s\n", pIPAddr ->IpAddress.String );
pIPAddr = pIPAddr ->Next;
}
}
exit( 0 );
}
Дополнительная информация
Windows NT/2000/XP: Включена в Windows 2000 и выше.
Windows 95/98/Me: Включена в Windows 98 и выше.
Заголовок: Объявлена в Iphlpapi.h.
Библиотека: Iphlpapi.lib.
|