GetServiceKeyNameA 関数 (winsvc.h)

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

構文

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

パラメーター

[in] hSCManager

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

[in] lpDisplayName

サービス表示名。 この文字列の長さは最大 256 文字です。

[out, optional] lpServiceName

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

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

[in, out] lpcchBuffer

TCHARlpServiceName パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 関数から戻るときに、このパラメーターには、NULL 終端文字を除く TCHAR のサービス名のサイズが含まれます。

lpServiceName が指すバッファーが小さすぎてサービス名が含まれない場合、関数はデータを格納しません。 関数が戻ると、 lpcchBuffer には、NULL 終端記号を除くサービス名のサイズが含まれます。

戻り値

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

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

サービスには、サービス名と表示名の 2 つの名前があります。 サービス名は、レジストリ内のサービスのキーの名前です。 表示名は、サービス コントロール パネル アプリケーションに表示されるわかりやすい名前であり、 NET START コマンドで使用されます。 どちらの名前も CreateService 関数で指定され、 ChangeServiceConfig 関数で変更できます。 サービスに指定された情報は、HKEY_LOCAL_MACHINE System\CurrentControlSet\Services\ServiceName レジストリ キーの\下のサービス名と同じ名前のキーに格納されます。

サービス名を表示名にマップするには、 GetServiceDisplayName 関数を使用します。 表示名をサービス名にマップするには、 GetServiceKeyName 関数を使用します。

注意

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

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winsvc.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

GetServiceDisplayName

OpenSCManager

サービス関数