GetHostNameW

GetHostNameW 関数は、ローカルコンピュータの標準ホスト名を Unicode 文字列として取得する。

GetHostNameW name, namelen

name : [wstr] ローカルホスト名を NULL 終端 Unicode 文字列として受け取るバッファへのポインタ。
namelen : [int] name パラメータが指すバッファの長さ (ワイド文字数)。

(プラグイン / モジュール : ws2_32.dll)

解説

GetHostNameW 関数は、ローカルコンピュータの標準ホスト名を Unicode 文字列として取得する。

[戻り値]
エラーがない場合、GetHostNameW はゼロを返す。そうでない場合は SOCKET_ERROR
を返し、WSAGetLastError を呼び出すことで特定のエラーコードを取得できる。
(以下省略)

[備考]
GetHostNameW 関数は、name パラメータで指定されたバッファにローカルホスト名を Unicode (UTF-16)
で返す。ホスト名は NULL 終端 Unicode 文字列として返される。ホスト名の形式は Windows Sockets
プロバイダに依存し、単純なホスト名の場合も完全修飾ドメイン名 (FQDN) の場合もある。ただし、返される名前は GetAddrInfoW
で正常に解析できることが保証されている。インターネットの普及により、ASCII
文字では表現できない言語のインターネットホスト名を識別する必要性が高まっている。非 ASCII 文字 (Unicode) を特殊な
ASCII 文字列 (Punycode) として表現することを可能にする識別子は、国際化ドメイン名 (IDN) として知られている。IDN
を標準的に扱う仕組みは IDNA (Internationalizing Domain Names in Applications)
と呼ばれる。GetHostNameW 関数はローカルホスト名を Punycode と Unicode
間で変換しない。GetAddrInfoW 関数は IDN の解析サポートを提供し、Punycode/IDN
のエンコードと変換を行う。Windows Server 2012 のクラスタリソース上で GetHostNameW
関数を使用し、_CLUSTER_NETWORK_NAME_
環境変数が定義されている場合、その値が実際のホスト名より優先されて返される。クラスタリソース上では、_CLUSTER_NETWORK_NAME_
環境変数にクラスタの名前が格納されている。GetHostNameW 関数は、Svgguid.h ヘッダファイルに定義されている
SVCID_HOSTNAME GUID
を用いてネームスペースプロバイダに問い合わせてローカルホスト名を決定する。どのネームスペースプロバイダも応答しない場合、GetHostNameW
関数はローカルコンピュータの NetBIOS 名を Unicode で返す。name パラメータが指すバッファに返される文字列の最大長
(ワイド文字数) はネームスペースプロバイダに依存するが、256 ワイド文字以下でなければならない。そのため、name パラメータに
256 ワイド文字のバッファを渡し、namelen パラメータを 256 に設定すれば、バッファサイズは常に十分である。
注 ローカルホスト名が設定されていない場合でも、GetHostNameW は成功し、GetAddrInfoW
で解決可能なトークンホスト名を返さなければならない。
Windows Phone 8: この関数は Windows Phone 8 以降の Windows Phone
ストアアプリでサポートされる。Windows 8.1 および Windows Server 2012 R2: この関数は、Windows
8.1、Windows Server 2012 R2 以降の Windows ストアアプリでサポートされる。

情報

プラグイン / モジュールws2_32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ws2_32_gen2.hs