次の方法で共有


GetServiceDisplayNameA 関数 (winsvc.h)

指定したサービスの表示名を取得します。

構文

BOOL GetServiceDisplayNameA(
  [in]            SC_HANDLE hSCManager,
  [in]            LPCSTR    lpServiceName,
  [out, optional] LPSTR     lpDisplayName,
  [in, out]       LPDWORD   lpcchBuffer
);

パラメーター

[in] hSCManager

OpenSCManager 関数によって返される、サービス コントロール マネージャー データベースへのハンドル。

[in] lpServiceName

サービス名。 この名前は、サービスのレジストリ キー名と同じです。 256 文字未満の名前を選択することをお勧めします。

[out, optional] lpDisplayName

サービスの表示名を受け取るバッファーへのポインター。 関数が失敗した場合、このバッファーには空の文字列が含まれます。

この配列の最大サイズは 4K バイトです。 必要なサイズを決定するには、このパラメーターに NULL、lpcchBuffer パラメーターに 0 を指定します。 関数は失敗し、GetLastError ERROR_INSUFFICIENT_BUFFERを返します。 lpcchBuffer パラメーターは、必要なサイズを受け取ります。

このパラメーターでは、次の形式を使用してローカライズされた文字列を指定できます。

@[パス]dllname-strID

識別子 strID を持つ文字列は、dllname読み込まれます。パス は省略可能です。 詳細については、「RegLoadMUIString」を参照してください。

Windows Server 2003 および Windows XP: ローカライズされた文字列は、Windows Vista までサポートされていません。

[in, out] lpcchBuffer

lpDisplayNameが指すバッファーのサイズ を指定する変数へのポインター (TCHAR)。

出力時に、この変数はサービスの表示名のサイズ (null 終端文字を除く) を文字で受け取ります。

lpDisplayName 指すバッファーが小さすぎて表示名を格納できない場合、関数はそれを格納しません。 関数から制御が戻ると、lpcchBuffer には、サービスの表示名のサイズが含まれますが、null で終わる文字は除きます。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

サービスには、サービス名と表示名の 2 つの名前があります。 サービス名は、レジストリ内のサービスのキーの名前です。 表示名は、Services コントロール パネル アプリケーションに表示されるわかりやすい名前であり、NET START コマンドで使用されます。 サービス名を表示名にマップするには、GetServiceDisplayName 関数を使用します。 表示名をサービス名にマップするには、GetServiceKeyName 関数を使用します。

手記

winsvc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetServiceDisplayName を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winsvc.h (Windows.h を含む)
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

GetServiceKeyNameOpenSCManagerService Functions