GetNetworkParams

In pOutBufLen void

聲明

DWORD GetNetworkParams(
PFIXED_INFO info,
PULONG pOutButLen
);
This function retrieves network parameters for the local computer.

說明

獲取本地計算機的網路參數。

參數

Info [out]
一個指向緩衝的指針,它包含一個FIXED_INFO 結構,如果函式成功的話,該結構接收本地計算機的網路參數。該緩衝必須在之前由GetNetworkParams 函式分配。
pOutBufLen [in]
一個指向一個ULONG變數的指針,該變數指定FIXED_INFO結構的大小。如果不夠大,則該函式會以合適的大小來填充這個變數,並返回一個ERROR_BUFFER_OVERFLOW的錯誤代碼

使用(c++源碼)

void GetDns()
{
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( "Call to 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;
}
}
}

返回值

如果函式成功,返回ERROR_SUCCESS,否則,返回下列錯誤代碼:

返回碼 描述
ERROR_BUFFER_OVERFLOW 用於接收網路參數信息的緩衝太小。如果pOutBufLen參數太小以至於不能承載網路參數信息或pFixedInfo參數是一個NULL指針。當這個錯誤代碼返回時,pOutBufLen 參數指向合適的緩衝大小。
ERROR_INVALID_PARAMETER 一個無效的參數傳遞給該函式。如果pOutBufLen參數是一個NULL指針,主調進程對pOutBufLen參數指向的記憶體區域不具有讀寫許可權,以及主調進程對由pFixedInfo參數指向的記憶體不具有寫許可權時,會返回該錯誤。
ERROR_NO_DATA 本地計算機不存在網路參數信息。
ERROR_NOT_SUPPORTED 本地計算機上的作業系統不支持該函式
Other 如果函式失敗,使用FormatMessage 函式為返回錯誤碼來獲得訊息字元串。

備註

該函式用於會的本地計算機的網路參數信息。網路參數會以一個FIXED_INFO結構返回給用戶。FIXED_INFO結構所在的記憶體必須由應用程式來分配。當不再需要這個結構時,需要由應用程式來釋放它所占據的記憶體。

要求

Minimum supported client Windows 2000 Professional
Minimum supported server Windows 2000 Server
Header Iphlpapi.h
Library Iphlpapi.lib
DLL Iphlpapi.dll

相關詞條

相關搜尋

熱門詞條

聯絡我們