Funzione GetComputerNameExA (sysinfoapi.h)
Recupera un nome NetBIOS o DNS associato al computer locale. I nomi vengono stabiliti all'avvio del sistema, quando il sistema li legge dal Registro di sistema.
Sintassi
BOOL GetComputerNameExA(
[in] COMPUTER_NAME_FORMAT NameType,
[out] LPSTR lpBuffer,
[in, out] LPDWORD nSize
);
Parametri
[in] NameType
Tipo di nome da recuperare. Questo parametro è un valore del tipo di enumerazione COMPUTER_NAME_FORMAT. Nella tabella seguente vengono fornite informazioni aggiuntive.
[out] lpBuffer
Puntatore a un buffer che riceve il nome del computer o il nome del server virtuale del cluster.
La lunghezza del nome può essere maggiore di MAX_COMPUTERNAME_LENGTH caratteri perché DNS consente nomi più lunghi. Per assicurarsi che questo buffer sia sufficientemente grande, impostare questo parametro su NULL e usare le dimensioni del buffer necessarie restituite nel parametro lpnSize.
[in, out] nSize
In input, specifica le dimensioni del buffer, in TCHAR. Nell'output, riceve il numero di TCHAR copiati nel buffer di destinazione, senza includere il carattere di terminazione null.
Se il buffer è troppo piccolo, la funzione ha esito negativo e GetLastError restituisce ERROR_MORE_DATA. Questo parametro riceve le dimensioni del buffer richiesto, incluso il carattere di terminazione null.
Se lpBuffer è null, questo parametro deve essere zero.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un valore diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError. I valori possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Il buffer lpBuffer |
Osservazioni
Se i criteri di gruppo non sono impostati per il computer locale, la funzione GetComputerNameEx recupera i nomi NetBIOS o DNS stabiliti all'avvio del sistema. Se i criteri di gruppo sono impostati, la funzione restituisce il nome di dominio primario impostato da Criteri di gruppo. Le modifiche apportate dal SetComputerName o funzioni SetComputerNameEx non diventano effettive finché l'utente non riavvia il computer.
Se il computer locale non è configurato per l'uso dei nomi DNS, GetComputerNameEx non restituirà informazioni DNS. Per configurare il computer per eseguire questa operazione, seguire i passaggi descritti nella Guida del sistema operativo e modificare il suffisso DNS primario del computer, quindi riavviare il computer.
Il comportamento di questa funzione può essere influenzato se il computer locale è un nodo in un cluster. Per altre informazioni, vedere ResUtilGetEnvironmentWithNetName e UseNetworkName.
Se si usano ambienti che usano layout DNS diversi, in cui l'FQDN del computer non corrisponde al nome di dominio completo del dominio, usare LsaQueryInformationPolicy.
Per compilare un'applicazione che usa questa funzione, definire la macro _WIN32_WINNT come 0x0500 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.
Esempi
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
void _tmain(void)
{
TCHAR buffer[256] = TEXT("");
TCHAR szDescription[8][32] = {TEXT("NetBIOS"),
TEXT("DNS hostname"),
TEXT("DNS domain"),
TEXT("DNS fully-qualified"),
TEXT("Physical NetBIOS"),
TEXT("Physical DNS hostname"),
TEXT("Physical DNS domain"),
TEXT("Physical DNS fully-qualified")};
int cnf = 0;
DWORD dwSize = _countof(buffer);
for (cnf = 0; cnf < ComputerNameMax; cnf++)
{
if (!GetComputerNameEx((COMPUTER_NAME_FORMAT)cnf, buffer, &dwSize))
{
_tprintf(TEXT("GetComputerNameEx failed (%d)\n"), GetLastError());
return;
}
else _tprintf(TEXT("%s: %s\n"), szDescription[cnf], buffer);
dwSize = _countof(buffer);
ZeroMemory(buffer, dwSize);
}
}
Nota
L'intestazione sysinfoapi.h definisce GetComputerNameEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
sysinfoapi.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |
Vedere anche
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment