次の方法で共有


SERVICE_REQUIRED_PRIVILEGES_INFOA構造体 (winsvc.h)

サービスに必要な特権を表します。

構文

typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOA {
  LPSTR pmszRequiredPrivileges;
} SERVICE_REQUIRED_PRIVILEGES_INFOA, *LPSERVICE_REQUIRED_PRIVILEGES_INFOA;

メンバーズ

pmszRequiredPrivileges

特権を指定する複数文字列。 使用可能な値の一覧については、「Privilege Constants」を参照してください。

複数文字列は、空の文字列 (\0) で終わる null で終わる文字列のシーケンスです。 次に例を示します。String1\0String2\0String3\0LastString\0\0.

備考

必要な特権の変更は、次回サービスが開始されるときに有効になります。 SCM は、サービスを開始しようとしたときに、サービスが指定された特権をサポートできるかどうかを判断します。

サービスを分析し、必要な最小限の特権セットを使用することをお勧めします。

必要な特権を設定しない場合、SCM は既定でプロセス トークンに割り当てられているすべての特権を使用します。 サービスの特権を指定すると、プロセスの開始時にプロセス トークンから不要な特権が SCM によって削除されます。 複数のサービスが 1 つのプロセスを共有する場合、SCM はプロセス内のすべてのサービスに必要な特権の和集合を計算します。

互換性のために、プロセス内のサービスが特権を要求していない場合でも、SeChangeNotifyPrivilege 特権はプロセス トークンから削除されることはありません。 そのため、サービスでこの特権を明示的に指定する必要はありません。

手記

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

必要条件

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

関連項目

ChangeServiceConfig2

QueryServiceConfig2