QUERY_SERVICE_CONFIGA構造体 (winsvc.h)
インストールされているサービスの構成情報が含まれます。 QueryServiceConfig 関数によって使用されます。
構文
typedef struct _QUERY_SERVICE_CONFIGA {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
LPSTR lpBinaryPathName;
LPSTR lpLoadOrderGroup;
DWORD dwTagId;
LPSTR lpDependencies;
LPSTR lpServiceStartName;
LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
メンバー
dwServiceType
サービスの種類。 このメンバーには、次のいずれかの値を指定できます。
値が SERVICE_WIN32_OWN_PROCESS または SERVICE_WIN32_SHARE_PROCESSで、サービスが LocalSystem アカウントのコンテキストで実行されている場合は、次の型も指定できます。
値 | 意味 |
---|---|
|
サービスはデスクトップと対話できます。
詳細については、「 対話型サービス」を参照してください。 |
dwStartType
サービスを開始するタイミング。 このメンバーには、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
|
システムの起動中に、サービス 制御マネージャーによってサービスが自動的に開始されました。 |
|
システム ローダーによって起動されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。 |
|
プロセスが StartService 関数を呼び出したときにサービス コントロール マネージャーによって開始されるサービス。 |
|
開始できないサービス。 サービスの開始を試みると、エラー コード がERROR_SERVICE_DISABLED。 |
|
IoInitSystem 関数によって起動されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。 |
dwErrorControl
このサービスの開始に失敗した場合に実行されるエラーとアクションの重大度。 このメンバーには、次のいずれかの値を指定できます。
lpBinaryPathName
サービス バイナリ ファイルへの完全修飾パス。
パスには、自動開始サービスの引数を含めることもできます。 これらの引数は、サービス エントリ ポイント (通常は メイン 関数) に渡されます。
lpLoadOrderGroup
このサービスが属する読み込み順序付けグループの名前。 メンバーが NULL または空の文字列の場合、サービスは読み込み順序付けグループに属していません。
スタートアップ プログラムでは、読み込み順序付けグループを使用して、他のグループに対して指定した順序でサービスのグループを読み込みます。 読み込み順序付けグループの一覧は、次のレジストリ値に含まれています。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder
dwTagId
lpLoadOrderGroup パラメーターで指定されたグループ内のこのサービスの一意のタグ値。 値 0 は、サービスにタグが割り当てられていないことを示します。 次の場所にあるレジストリでタグ順序ベクトルを指定することで、読み込み順序グループ内でサービスの起動を順序付けするためのタグを使用できます。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList
タグは、 SERVICE_BOOT_START または SERVICE_SYSTEM_START 開始の種類を持つ SERVICE_KERNEL_DRIVER および SERVICE_FILE_SYSTEM_DRIVER 型のサービスに対してのみ評価されます。
lpDependencies
このサービスの前に開始する必要がある、null で区切られたサービス名または読み込み順序付けグループの配列へのポインター。 配列は 2 倍 null で終了します。 ポインターが NULL の場合、または空の文字列を指している場合、サービスには依存関係がありません。 グループ名を指定する場合、サービスとサービス グループは同じネーム スペースを共有 するため、サービス名と区別するために、SC_GROUP_IDENTIFIER (WinSvc.h で定義) 文字の前に付ける必要があります。 サービスへの依存関係は、依存するサービスが実行されている場合にのみ、このサービスを実行できることを意味します。 グループへの依存関係があるサービスとは、グループのすべてのメンバーを起動しようとした際、そのグループの少なくとも 1 つのメンバーが実行されないと、このサービスを実行できないことを意味します。
lpServiceStartName
サービスの種類が SERVICE_WIN32_OWN_PROCESS または SERVICE_WIN32_SHARE_PROCESSの場合、このメンバーは、サービス プロセスの実行時にログオンするアカウントの名前です。 この名前は、 Domain\UserName という形式にすることができます。 アカウントが組み込みドメインに属している場合、名前は .\UserName という形式になります。 プロセスが LocalSystem アカウントで実行されている場合は、名前を "LocalSystem" にすることもできます。
サービスの種類が SERVICE_KERNEL_DRIVER または SERVICE_FILE_SYSTEM_DRIVERの場合、このメンバーは、入力および出力 (I/O) システムがデバイス ドライバーの読み込みに使用するドライバー オブジェクト名 (つまり、\FileSystem\Rdr または \Driver\Xns) です。 このメンバーが NULL の場合、ドライバーは、サービス名に基づいて、I/O システムによって作成された既定のオブジェクト名で実行されます。
lpDisplayName
サービス制御プログラムがサービスを識別するために使用する表示名。 この文字列の長さは最大 256 文字です。 名前は、サービス コントロール マネージャーで大文字と小文字が保持されます。 表示名の比較では、常に大文字と小文字が区別されません。
このパラメーターは、次の形式を使用してローカライズされた文字列を指定できます。
@[Path]DLLName,-StrID
識別子 StrID を持つ文字列は DLLName から読み込まれます。 Path は省略可能です。 詳細については、「 RegLoadMUIString」を参照してください。
Windows Server 2003 および Windows XP: ローカライズされた文字列は、Windows Vista までサポートされません。
注釈
サービスの構成情報は、 CreateService 関数の呼び出しによってサービスが作成されるときに最初に指定されます。 この情報は、 ChangeServiceConfig 関数を呼び出すことによって変更できます。
例
例については、「サービスの 構成のクエリ」を参照してください。
注意
winsvc.h ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてQUERY_SERVICE_CONFIGを定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winsvc.h (Windows.h を含む) |