聲明
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 |