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