FIXED_INFO_W2KSP1-Struktur (iptypes.h)
Die FIXED_INFO-Struktur enthält Informationen, die über alle Schnittstellen auf einem Computer hinweg identisch sind.
Syntax
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;
Members
HostName[MAX_HOSTNAME_LEN + 4]
Typ: char[MAX_HOSTNAME_LEN + 4]
Der Hostname für den lokalen Computer. Dies kann der vollqualifizierte Hostname (einschließlich der Domäne) für einen Computer sein, der einer Domäne beigetreten ist.
DomainName[MAX_DOMAIN_NAME_LEN + 4]
Typ: char[MAX_DOMAIN_NAME_LEN + 4]
Die Domäne, in der der lokale Computer registriert ist.
CurrentDnsServer
Typ: PIP_ADDR_STRING
Reserviert. Verwenden Sie das DnsServerList-Element , um die DNS-Server für den lokalen Computer abzurufen.
DnsServerList
Typ: IP_ADDR_STRING
Eine verknüpfte Liste von IP_ADDR_STRING Strukturen, die den Satz von DNS-Servern angeben, die vom lokalen Computer verwendet werden.
NodeType
Typ: UINT
Der Knotentyp des lokalen Computers. Diese Werte werden in der Iptypes.h-Headerdatei definiert.
ScopeId[MAX_SCOPE_ID_LEN + 4]
Typ: char[MAX_SCOPE_ID_LEN + 4]
Der Name des DHCP-Bereichs.
EnableRouting
Typ: UINT
Ein boolescher Wert, der angibt, ob das Routing auf dem lokalen Computer aktiviert ist.
EnableProxy
Typ: UINT
Ein boolescher Wert, der angibt, ob der lokale Computer als ARP-Proxy fungiert.
EnableDns
Typ: UINT
Ein boolescher Wert, der angibt, ob DNS auf dem lokalen Computer aktiviert ist.
Hinweise
Die FIXED_INFO-Struktur wird von der GetNetworkParams-Funktion abgerufen.
Im Microsoft Windows Software Development Kit (SDK) ist die FIXED_INFO_WIN2KSP1-Struktur definiert. Beim Kompilieren einer Anwendung, wenn die Zielplattform Windows 2000 mit Service Pack 1 (SP1) und höher (NTDDI_VERSION >= NTDDI_WIN2KSP1
, oderWINVER >= 0x0501
) ist, _WIN32_WINNT >= 0x0501
wird die FIXED_INFO_WIN2KSP1 Struktur typ FIXED_INFO isiert. Wenn eine Anwendung kompiliert wird, wenn die Zielplattform nicht Windows 2000 mit SP1 und höher ist, ist die FIXED_INFO-Struktur nicht definiert.
Die GetNetworkParams-Funktion und die FIXED_INFO-Struktur werden unter Windows 98und höher unterstützt. Zum Erstellen einer Anwendung für eine Zielplattform vor Windows 2000 mit Service Pack 1 (SP1) muss jedoch eine frühere Version des Platform Software Development Kit (SDK) verwendet werden.
Beispiele
Der folgende Code ruft eine FIXED_INFO-Struktur ab, die Netzwerkkonfigurationsinformationen für den lokalen Computer enthält. Der Code druckt ausgewählte Member aus der -Struktur.
//
// 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;
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | iptypes.h (include Iphlpapi.h) |