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 dal tipo di enumerazione COMPUTER_NAME_FORMAT. La tabella seguente fornisce 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 TCHARs. Nell'output riceve il numero di TCHAR copiati nel buffer di destinazione, non incluso il carattere Null di terminazione.
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 Null terminante.
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 informazioni dettagliate sull'errore, chiamare GetLastError. Di seguito sono indicati alcuni valori possibili.
Codice restituito | Descrizione |
---|---|
|
Il buffer lpBuffer è troppo piccolo. Il parametro lpnSize contiene il numero di byte necessari per ricevere il nome. |
Commenti
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 del nome apportate dalle funzioni SetComputerName o SetComputerNameEx non vengono applicate fino al riavvio del computer.
Se il computer locale non è configurato per l'uso dei nomi DNS, GetComputerNameEx non restituirà le informazioni DNS. Per configurare il computer a tale scopo, 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 interessato se il computer locale è un nodo in un cluster. Per altre informazioni, vedere ResUtilGetEnvironmentWithNetName e UseNetworkName.
Se si utilizzano ambienti che usano layout DNS diversi, in cui il nome di dominio completo del computer non corrisponde al nome di dominio completo del dominio, usare invece 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | sysinfoapi.h (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment