GetComputerNameExA 関数 (sysinfoapi.h)
ローカル コンピューターに関連付けられている NetBIOS または DNS 名を取得します。 名前は、システムがレジストリから読み取るときに、システムの起動時に確立されます。
構文
BOOL GetComputerNameExA(
[in] COMPUTER_NAME_FORMAT NameType,
[out] LPSTR lpBuffer,
[in, out] LPDWORD nSize
);
パラメーター
[in] NameType
取得する名前の種類。 このパラメーターは、COMPUTER_NAME_FORMAT 列挙型の値です。 次の表に、追加情報を示します。
[out] lpBuffer
コンピューター名またはクラスター仮想サーバー名を受け取るバッファーへのポインター。
DNS では長い名前が許可されるため、名前の長さはMAX_COMPUTERNAME_LENGTH文字より大きい場合があります。 このバッファーが十分な大きさになるようにするには、このパラメーターを NULL
[in, out] nSize
入力時に、バッファーのサイズを TCHAR
バッファーが小さすぎると、関数は失敗し、GetLastError
lpBuffer
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
リターン コード | 形容 |
---|---|
|
lpBuffer バッファーが小さすぎます。 lpnSize パラメーターには、名前を受け取るために必要なバイト数が含まれています。 |
備考
ローカル コンピューターにグループ ポリシーが設定されていない場合、GetComputerNameEx 関数は、システムの起動時に確立された NetBIOS または DNS 名を取得します。 グループ ポリシーが設定されている場合、この関数はグループ ポリシーによって設定されたプライマリ ドメイン名を返します。
ローカル コンピューターが DNS 名を使用するように構成されていない場合、GetComputerNameEx
ローカル コンピューターがクラスター内のノードである場合、この関数の動作が影響を受ける可能性があります。 詳細については、「ResUtilGetEnvironmentWithNetName と UseNetworkName
コンピューターの FQDN がドメインの FQDN と一致しないさまざまな DNS レイアウトを使用する環境で作業している場合は、代わりに LsaQueryInformationPolicy
この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT マクロを 0x0500 以降として定義します。 詳細については、「Windows ヘッダーの使用」を参照してください。
例
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
void _tmain(void)
{
TCHAR buffer[256] = TEXT("");
TCHAR szDescription[8][32] = {TEXT("NetBIOS"),
TEXT("DNS hostname"),
TEXT("DNS domain"),
TEXT("DNS fully-qualified"),
TEXT("Physical NetBIOS"),
TEXT("Physical DNS hostname"),
TEXT("Physical DNS domain"),
TEXT("Physical DNS fully-qualified")};
int cnf = 0;
DWORD dwSize = _countof(buffer);
for (cnf = 0; cnf < ComputerNameMax; cnf++)
{
if (!GetComputerNameEx((COMPUTER_NAME_FORMAT)cnf, buffer, &dwSize))
{
_tprintf(TEXT("GetComputerNameEx failed (%d)\n"), GetLastError());
return;
}
else _tprintf(TEXT("%s: %s\n"), szDescription[cnf], buffer);
dwSize = _countof(buffer);
ZeroMemory(buffer, dwSize);
}
}
手記
sysinfoapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetComputerNameEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | sysinfoapi.h (Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment