GetHostNameW 関数 (winsock2.h)
GetHostNameW 関数は、ローカル コンピューターの標準ホスト名を Unicode 文字列として取得します。
構文
int WSAAPI GetHostNameW(
[out] PWSTR name,
[in] int namelen
);
パラメーター
[out] name
ローカル ホスト名を null で終わる Unicode 文字列として受け取るバッファーへのポインター。
[in] namelen
name パラメーターが指すバッファーの長さ (ワイド文字)。
戻り値
エラーが発生しない場合、 GetHostNameW は 0 を返します。 それ以外の場合は 、SOCKET_ERROR を返し、 WSAGetLastError を呼び出すことで特定のエラー コードを取得できます。
エラー コード | 意味 |
---|---|
name パラメーターが NULL ポインターであるか、ユーザー・アドレス・スペースの有効な部分ではありません。 namelen パラメーターで指定されたバッファー サイズが小さすぎて完全なホスト名を保持しないと、このエラーも返されます。 | |
この関数を使用する前に、 WSAStartup 呼び出しが正常に行われる必要があります。 | |
ネットワーク サブシステムが失敗しました。 |
解説
GetHostNameW 関数は、Unicode (UTF-16) の name パラメーターで指定されたバッファーにローカル ホストの名前を返します。 ホスト名は 、null で終わる Unicode 文字列として返されます。 ホスト名の形式は Windows ソケット プロバイダーによって異なります。単純なホスト名を指定することも、完全修飾ドメイン名にすることもできます。 ただし、返される名前が GetAddrInfoW によって正常に解析されることは保証されます。
インターネットの増加に伴い、ASCII 文字セットで表されない他の言語のインターネット ホスト名を識別する必要性が高まっています。 このニーズを容易にし、ASCII 以外の文字 (Unicode) を特殊な ASCII 文字列 (Punycode) として表現できるようにする識別子は、国際化ドメイン名 (IDN) と呼ばれます。 アプリケーションのドメイン名の国際化 (IDNA) と呼ばれるメカニズムは、IDN を標準的な方法で処理するために使用されます。 GetHostNameW 関数は、Punycode と Unicode の間でローカル ホスト名を変換しません。 GetAddrInfoW 関数は、国際化ドメイン名 (IDN) の解析をサポートし、Punycode/IDN エンコードと変換を実行します。
Windows Server 2012 上のクラスター リソースで GetHostNameW 関数を使用し、 CLUSTER_NETWORK_NAME 環境変数が定義されている場合、この環境変数の値は実際のホスト名をオーバーライドして返されます。 クラスター リソースでは、 CLUSTER_NETWORK_NAME 環境変数にクラスターの名前が含まれます。
GetHostNameW 関数は名前空間プロバイダーに対してクエリを実行し、Svgguid.h ヘッダー ファイルで定義されているSVCID_HOSTNAME GUID を使用してローカル ホスト名を決定します。 名前空間プロバイダーが応答しない場合、 GetHostNameW 関数は Unicode でローカル コンピューターの NetBIOS 名を返します。
name パラメーターによって指されるバッファーで返される文字列の最大長 (ワイド文字) は名前空間プロバイダーによって異なりますが、この文字列は 256 文字以下である必要があります。 したがって、 name パラメーターに 256 文字のワイド文字のバッファーが渡され、 namelen パラメーターが 256 に設定されている場合、バッファー サイズは常に適切です。
Windows Phone 8: この関数は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。
Windows 8.1と Windows Server 2012 R2: この関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストア アプリでサポートされています。
要件
サポートされている最小のクライアント | Windows 8.1、Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winsock2.h |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |