Partager via


structure FIXED_INFO_W2KSP1 (iptypes.h)

La structure FIXED_INFO contient des informations identiques sur toutes les interfaces d’un ordinateur.

Syntaxe

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;

Membres

HostName[MAX_HOSTNAME_LEN + 4]

Type : char[MAX_HOSTNAME_LEN + 4]

Nom d’hôte de l’ordinateur local. Il peut s’agir du nom d’hôte complet (y compris le domaine) d’un ordinateur joint à un domaine.

DomainName[MAX_DOMAIN_NAME_LEN + 4]

Type : char[MAX_DOMAIN_NAME_LEN + 4]

Domaine dans lequel l’ordinateur local est inscrit.

CurrentDnsServer

Type : PIP_ADDR_STRING

Réservé. Utilisez le membre DnsServerList pour obtenir les serveurs DNS de l’ordinateur local.

DnsServerList

Type : IP_ADDR_STRING

Liste liée de structures IP_ADDR_STRING qui spécifient l’ensemble de serveurs DNS utilisés par l’ordinateur local.

NodeType

Type : UINT

Type de nœud de l’ordinateur local. Ces valeurs sont définies dans le fichier d’en-tête Iptypes.h .

NodeType Signification
BROADCAST_NODETYPE
0x0001
Type de nœud de diffusion.
PEER_TO_PEER_NODETYPE
0x0002
Type de nœud d’égal à égal.
MIXED_NODETYPE
0x0004
Type de nœud mixte.
HYBRID_NODETYPE
0x0008
Type de nœud hybride.

ScopeId[MAX_SCOPE_ID_LEN + 4]

Type : char[MAX_SCOPE_ID_LEN + 4]

Nom de l’étendue DHCP.

EnableRouting

Type : UINT

Valeur booléenne qui spécifie si le routage est activé sur l’ordinateur local.

EnableProxy

Type : UINT

Valeur booléenne qui spécifie si l’ordinateur local agit comme un proxy ARP.

EnableDns

Type : UINT

Valeur booléenne qui spécifie si DNS est activé sur l’ordinateur local.

Notes

La structure FIXED_INFO est récupérée par la fonction GetNetworkParams .

Dans le Kit de développement logiciel (SDK) Microsoft Windows, la structure FIXED_INFO_WIN2KSP1 est définie. Lors de la compilation d’une application si la plateforme cible est Windows 2000 avec Service Pack 1 (SP1) et versions ultérieures (NTDDI_VERSION >= NTDDI_WIN2KSP1, _WIN32_WINNT >= 0x0501ou WINVER >= 0x0501), le FIXED_INFO_WIN2KSP1 struct est typé à la structure FIXED_INFO . Lors de la compilation d’une application si la plateforme cible n’est pas Windows 2000 avec SP1 et versions ultérieures, la structure FIXED_INFO n’est pas définie.

La fonction GetNetworkParams et la structure FIXED_INFO sont prises en charge sur Windows 98 et versions ultérieures. Toutefois, pour créer une application pour une plateforme cible antérieure à Windows 2000 avec Service Pack 1 (SP1), une version antérieure du Kit de développement logiciel (SDK) de plateforme doit être utilisée.

Exemples

Le code suivant récupère une structure FIXED_INFO qui contient des informations de configuration réseau pour l’ordinateur local. Le code imprime les membres sélectionnés à partir de la structure.

//
// 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;
}

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête iptypes.h (inclure Iphlpapi.h)

Voir aussi

GetNetworkParams

Page d’accueil de l’assistance IP

Structures d’assistance IP

IP_ADDR_STRING