SERVICE_REQUIRED_PRIVILEGES_INFOW 構造体 (winsvc.h)

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

構文

typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW {
  LPWSTR pmszRequiredPrivileges;
} SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW;

メンバー

pmszRequiredPrivileges

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

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

解説

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

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

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

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

注意

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

要件

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

関連項目

ChangeServiceConfig2

QueryServiceConfig2