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
サービス バイナリ ファイルへの完全修飾パス。
パスには、自動開始サービスの引数を含めることもできます。 これらの引数は、サービス エントリ ポイント (通常は 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
lpServiceStartName
サービスの種類が SERVICE_WIN32_OWN_PROCESS または SERVICE_WIN32_SHARE_PROCESSの場合、このメンバーは、サービス プロセスの実行時と同じようにログオンするアカウントの名前です。 この名前は、ドメイン
サービスの種類が SERVICE_KERNEL_DRIVER または SERVICE_FILE_SYSTEM_DRIVERの場合、このメンバーは、入力および出力 (I/O) システムがデバイス ドライバーの読み込みに使用するドライバー オブジェクト名 (つまり、\FileSystem\Rdr または \Driver\Xns) です。 このメンバーが NULL の場合、ドライバーは、サービス名に基づいて、I/O システムによって作成された既定のオブジェクト名で実行されます。
lpDisplayName
サービス制御プログラムがサービスを識別するために使用する表示名。 この文字列の最大長は 256 文字です。 サービス コントロール マネージャーでは、名前は大文字と小文字が区別されます。 表示名の比較では、常に大文字と小文字が区別されません。
このパラメーターでは、次の形式を使用してローカライズされた文字列を指定できます。
@[パス]DLLName, -StrID
STRID
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 の
StartService の