FIXED_INFO_W2KSP1 構造体 (iptypes.h)
FIXED_INFO構造体には、コンピューター上のすべてのインターフェイスで同じ情報が含まれています。
構文
typedef struct {
char HostName[MAX_HOSTNAME_LEN + 4];
char DomainName[MAX_DOMAIN_NAME_LEN + 4];
PIP_ADDR_STRING CurrentDnsServer;
IP_ADDR_STRING DnsServerList;
UINT NodeType;
char ScopeId[MAX_SCOPE_ID_LEN + 4];
UINT EnableRouting;
UINT EnableProxy;
UINT EnableDns;
} FIXED_INFO_W2KSP1, *PFIXED_INFO_W2KSP1;
メンバー
HostName[MAX_HOSTNAME_LEN + 4]
型: char[MAX_HOSTNAME_LEN + 4]
ローカル コンピューターのホスト名。 これは、ドメインに参加しているコンピューターの完全修飾ホスト名 (ドメインを含む) である場合があります。
DomainName[MAX_DOMAIN_NAME_LEN + 4]
型: char[MAX_DOMAIN_NAME_LEN + 4]
ローカル コンピューターが登録されているドメイン。
CurrentDnsServer
種類: PIP_ADDR_STRING
予約済み。 DnsServerList メンバーを使用して、ローカル コンピューターの DNS サーバーを取得します。
DnsServerList
種類: IP_ADDR_STRING
ローカル コンピューターで使用 される DNS サーバーのセットを指定するIP_ADDR_STRING構造のリンクされた一覧。
NodeType
型: UINT
ローカル コンピューターのノードの種類。 これらの値は、 Iptypes.h ヘッダー ファイルで定義されています。
NodeType | 説明 |
---|---|
|
ブロードキャスト ノードタイプ。 |
|
ピア ツー ピア nodetype。 |
|
混合ノード型。 |
|
ハイブリッド ノードタイプ。 |
ScopeId[MAX_SCOPE_ID_LEN + 4]
型: char[MAX_SCOPE_ID_LEN + 4]
DHCP スコープ名。
EnableRouting
型: UINT
ローカル コンピューターでルーティングを有効にするかどうかを指定するブール値。
EnableProxy
型: UINT
ローカル コンピューターが ARP プロキシとして機能するかどうかを示すブール値。
EnableDns
型: UINT
ローカル コンピューターで DNS を有効にするかどうかを指定するブール値。
解説
FIXED_INFO構造体は、GetNetworkParams 関数によって取得されます。
Microsoft Windows ソフトウェア開発キット (SDK) では、 FIXED_INFO_WIN2KSP1 構造が定義されています。 ターゲット プラットフォームが Windows 2000 Service Pack 1 (SP1) 以降NTDDI_VERSION >= NTDDI_WIN2KSP1
(、、または WINVER >= 0x0501
) の場合、アプリケーションをコンパイルすると、_WIN32_WINNT >= 0x0501
FIXED_INFO_WIN2KSP1構造体は FIXED_INFO 構造体に型定義されます。 ターゲット プラットフォームが SP1 以降の Windows 2000 でない場合にアプリケーションをコンパイルする場合、 FIXED_INFO 構造は未定義です。
GetNetworkParams 関数とFIXED_INFO構造体は、Windows 98 以降でサポートされています。 ただし、Service Pack 1 (SP1) を使用して Windows 2000 より前のターゲット プラットフォーム用のアプリケーションを構築するには、以前のバージョンのプラットフォーム ソフトウェア開発キット (SDK) を使用する必要があります。
例
次のコードは、ローカル コンピューターのネットワーク構成情報を含む FIXED_INFO 構造体を取得します。 このコードは、 構造体から選択したメンバーを出力します。
//
// Link with IPHlpAPI.lib
//
#include <winsock2.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "IPHLPAPI.lib")
#define MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x))
#define FREE(x) HeapFree(GetProcessHeap(), 0, (x))
/* Note: could also use malloc() and free() */
int __cdecl main()
{
FIXED_INFO *pFixedInfo;
ULONG ulOutBufLen;
DWORD dwRetVal;
IP_ADDR_STRING *pIPAddr;
pFixedInfo = (FIXED_INFO *) MALLOC(sizeof (FIXED_INFO));
if (pFixedInfo == NULL) {
printf("Error allocating memory needed to call GetNetworkParams\n");
return 1;
}
ulOutBufLen = sizeof (FIXED_INFO);
// Make an initial call to GetAdaptersInfo to get
// the necessary size into the ulOutBufLen variable
if (GetNetworkParams(pFixedInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
FREE(pFixedInfo);
pFixedInfo = (FIXED_INFO *) MALLOC(ulOutBufLen);
if (pFixedInfo == NULL) {
printf("Error allocating memory needed to call GetNetworkParams\n");
return 1;
}
}
if (dwRetVal = GetNetworkParams(pFixedInfo, &ulOutBufLen) == NO_ERROR) {
printf("Host Name: %s\n", pFixedInfo->HostName);
printf("Domain Name: %s\n", pFixedInfo->DomainName);
printf("DNS Servers:\n");
printf("\t%s\n", pFixedInfo->DnsServerList.IpAddress.String);
pIPAddr = pFixedInfo->DnsServerList.Next;
while (pIPAddr) {
printf("\t%s\n", pIPAddr->IpAddress.String);
pIPAddr = pIPAddr->Next;
}
printf("Node Type: ");
switch (pFixedInfo->NodeType) {
case BROADCAST_NODETYPE:
printf("Broadcast node\n");
break;
case PEER_TO_PEER_NODETYPE:
printf("Peer to Peer node\n");
break;
case MIXED_NODETYPE:
printf("Mixed node\n");
break;
case HYBRID_NODETYPE:
printf("Hybrid node\n");
break;
default:
printf("Unknown node type %0lx\n", pFixedInfo->NodeType);
break;
}
printf("DHCP scope name: %s\n", pFixedInfo->ScopeId);
if (pFixedInfo->EnableRouting)
printf("Routing: enabled\n");
else
printf("Routing: disabled\n");
if (pFixedInfo->EnableProxy)
printf("ARP proxy: enabled\n");
else
printf("ARP Proxy: disabled\n");
if (pFixedInfo->EnableDns)
printf("DNS: enabled\n");
else
printf("DNS: disabled\n");
} else {
printf("GetNetworkParams failed with error: %d\n", dwRetVal);
return 1;
}
if (pFixedInfo)
FREE(pFixedInfo);
return 0;
}
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | iptypes.h (Iphlpapi.h を含む) |