次の方法で共有


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

サービス バイナリ ファイルへの完全修飾パス。

パスには、自動開始サービスの引数を含めることもできます。 これらの引数は、サービス エントリ ポイント (通常は main 関数) に渡されます。

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の場合、このメンバーは、サービス プロセスの実行時と同じようにログオンするアカウントの名前です。 この名前は、ドメインUserName形式にすることができます。 アカウントが組み込みドメインに属している場合、名前は .\UserName形式になります。 プロセスが LocalSystem アカウントで実行されている場合は、名前を "LocalSystem" にすることもできます。

サービスの種類が SERVICE_KERNEL_DRIVER または SERVICE_FILE_SYSTEM_DRIVERの場合、このメンバーは、入力および出力 (I/O) システムがデバイス ドライバーの読み込みに使用するドライバー オブジェクト名 (つまり、\FileSystem\Rdr または \Driver\Xns) です。 このメンバーが NULL の場合、ドライバーは、サービス名に基づいて、I/O システムによって作成された既定のオブジェクト名で実行されます。

lpDisplayName

サービス制御プログラムがサービスを識別するために使用する表示名。 この文字列の最大長は 256 文字です。 サービス コントロール マネージャーでは、名前は大文字と小文字が区別されます。 表示名の比較では、常に大文字と小文字が区別されません。

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

@[パス]DLLName, -StrID

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

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

備考

サービスの構成情報は、CreateService 関数の呼び出しによってサービスが作成されるときに最初に指定されます。 この情報は、ChangeServiceConfig 関数を呼び出すことによって変更できます。

例については、「サービスの構成のクエリを実行する」を参照してください。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー winsvc.h (Windows.h を含む)

関連項目

ChangeServiceConfig の

CreateService の

QueryServiceConfig

StartService の