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 を呼び出すことで特定のエラー コードを取得できます。

エラー コード 意味
WSAEFAULT
name パラメーターが NULL ポインターであるか、ユーザー・アドレス・スペースの有効な部分ではありません。 namelen パラメーターで指定されたバッファー サイズが小さすぎて完全なホスト名を保持しないと、このエラーも返されます。
WSANOTINITIALIZED
この関数を使用する前に、 WSAStartup 呼び出しが正常に行われる必要があります。
WSAENETDOWN
ネットワーク サブシステムが失敗しました。

解説

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 に設定されている場合、バッファー サイズは常に適切です。

メモ ローカル ホスト名が構成されていない場合、 GetHostNameW は成功し、 GetAddrInfoW が解決できるトークン ホスト名を返す必要があります。
 

Windows Phone 8: この関数は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。

Windows 8.1Windows 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

関連項目

GetAddrInfoW

Winsock 関数

Winsock リファレンス

gethostname