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_FILE_SYSTEM_DRIVER
0x00000002
ファイル システム ドライバー サービス。
SERVICE_KERNEL_DRIVER
0x00000001
ドライバー サービス。
SERVICE_WIN32_OWN_PROCESS
0x00000010
独自のプロセスで実行されるサービス。
SERVICE_WIN32_SHARE_PROCESS
0x00000020
プロセスを他のサービスと共有するサービス。
 

値が SERVICE_WIN32_OWN_PROCESS または SERVICE_WIN32_SHARE_PROCESSで、サービスが LocalSystem アカウントのコンテキストで実行されている場合は、次の型も指定できます。

意味
SERVICE_INTERACTIVE_PROCESS
0x00000100
サービスはデスクトップと対話できます。

詳細については、「 対話型サービス」を参照してください。

dwStartType

サービスを開始するタイミング。 このメンバーには、次のいずれかの値を指定できます。

意味
SERVICE_AUTO_START
0x00000002
システムの起動中に、サービス 制御マネージャーによってサービスが自動的に開始されました。
SERVICE_BOOT_START
0x00000000
システム ローダーによって起動されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。
SERVICE_DEMAND_START
0x00000003
プロセスが StartService 関数を呼び出したときにサービス コントロール マネージャーによって開始されるサービス。
SERVICE_DISABLED
0x00000004
開始できないサービス。 サービスの開始を試みると、エラー コード がERROR_SERVICE_DISABLED
SERVICE_SYSTEM_START
0x00000001
IoInitSystem 関数によって起動されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。

dwErrorControl

このサービスの開始に失敗した場合に実行されるエラーとアクションの重大度。 このメンバーには、次のいずれかの値を指定できます。

意味
SERVICE_ERROR_CRITICAL
0x00000003
スタートアップ プログラムは、可能な場合はイベント ログにエラーを記録します。 最後に既知の正常な構成が開始されている場合、スタートアップ操作は失敗します。 それ以外の場合は、最後に既知の適切な構成でシステムが再起動されます。
SERVICE_ERROR_IGNORE
0x00000000
スタートアップ プログラムはエラーを無視し、スタートアップ操作を続行します。
SERVICE_ERROR_NORMAL
0x00000001
スタートアップ プログラムは、イベント ログにエラーを記録し、スタートアップ操作を続行します。
SERVICE_ERROR_SEVERE
0x00000002
スタートアップ プログラムは、イベント ログにエラーを記録します。 最後に既知の正常な構成が開始されている場合、スタートアップ操作は続行されます。 それ以外の場合、システムは最後に既知の適切な構成で再起動されます。

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 を含む)

こちらもご覧ください

ChangeServiceConfig

CreateService

QueryServiceConfig

StartService