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