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 |
---|---|
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. | |
Prima di usare questa funzione, è necessario eseguire una chiamata WSAStartup riuscita. | |
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.
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 |