Funzione GetHostNameW (winsock2.h)

La funzione GetHostNameW recupera il nome host standard per il computer locale come stringa Unicode.

Sintassi

int WSAAPI GetHostNameW(
  [out] PWSTR name,
  [in]  int   namelen
);

Parametri

[out] name

Puntatore a un buffer che riceve il nome host locale come stringa Unicode con terminazione null.

[in] namelen

Lunghezza, in caratteri wide, del buffer a cui punta il parametro del nome .

Valore restituito

Se non si verifica alcun errore, GetHostNameW restituisce zero. In caso contrario, restituisce SOCKET_ERROR e un codice di errore specifico può essere recuperato chiamando WSAGetLastError.

Codice di errore Significato
WSAEFAULT
Il parametro name è un puntatore NULL o non è una parte valida dello spazio degli indirizzi utente. Questo errore viene restituito anche se la dimensione del buffer specificata dal parametro namelen è troppo piccola per contenere il nome host completo.
WSANOTINITIALISED
Prima di usare questa funzione, è necessario eseguire una chiamata WSAStartup riuscita.
WSAENETDOWN
Il sottosistema di rete non è riuscito.

Commenti

La funzione GetHostNameW restituisce il nome dell'host locale nel buffer specificato dal parametro name in Unicode (UTF-16). Il nome host viene restituito come stringa Unicode con terminazione null. Il formato del nome host dipende dal provider Di Windows Sockets, che può essere un nome host semplice oppure può essere un nome di dominio completo. Tuttavia, è garantito che il nome restituito verrà analizzato correttamente da GetAddrInfoW.

Con la crescita di Internet, c'è una crescente necessità di identificare i nomi host Internet per altre lingue non rappresentati dal set di caratteri ASCII. Gli identificatori che facilitano questa necessità e consentono a caratteri non ASCII (Unicode) di essere rappresentati come stringhe di caratteri ASCII speciali (Punycode) sono noti come Nomi di dominio internazionalizzati (IDN). Un meccanismo denominato Internationalizing Domain Names in Applications (IDNA) viene usato per gestire gli IDN in modo standard. La funzione GetHostNameW non converte il nome host locale tra Punycode e Unicode. La funzione GetAddrInfoW fornisce supporto per l'analisi di IDN (Internationalized Domain Name) ed esegue codifica e conversione punycode/IDN.

Se la funzione GetHostNameW viene usata in una risorsa cluster in Windows Server 2012 e la variabile di ambiente CLUSTER_NETWORK_NAME viene definita, il valore in questa variabile di ambiente esegue l'override del nome host effettivo e viene restituito. In una risorsa cluster, la variabile di ambiente CLUSTER_NETWORK_NAME contiene il nome del cluster.

La funzione GetHostNameW esegue una query sui provider di spazi dei nomi per determinare il nome host locale usando il GUID SVCID_HOSTNAME definito nel file di intestazione Svgguid.h . Se nessun provider di spazi dei nomi risponde, la funzione GetHostNameW restituisce il nome NetBIOS del computer locale in Unicode.

La lunghezza massima, in caratteri wide, della stringa restituita nel buffer a cui punta il parametro del nome dipende dal provider dello spazio dei nomi, ma questa stringa deve essere di 256 caratteri a livello o minore. Quindi, se un buffer di 256 caratteri wide viene passato nel parametro nome e il parametro namelen è impostato su 256, la dimensione del buffer sarà sempre adeguata.

Nota Se non è stato configurato alcun nome host locale, GetHostNameW deve avere esito positivo e restituire un nome host token che GetAddrInfoW può risolvere.
 

Windows Phone 8: questa funzione è supportata per le app Windows Phone Store in Windows Phone 8 e versioni successive.

Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Requisiti

   
Client minimo supportato Windows 8.1, Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winsock2.h
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

GetAddrInfoW

Funzioni Winsock

Informazioni di riferimento su Winsock

gethostname