PrivilegeCheck 関数 (securitybaseapi.h)

PrivilegeCheck 関数は、アクセス トークンで指定された特権セットが有効になっているかどうかを判断します。 PrivilegeCheck 関数は通常、クライアントのアクセス トークンの特権をチェックするためにサーバー アプリケーションによって呼び出されます。

構文

BOOL PrivilegeCheck(
  [in]      HANDLE         ClientToken,
  [in, out] PPRIVILEGE_SET RequiredPrivileges,
  [out]     LPBOOL         pfResult
);

パラメーター

[in] ClientToken

クライアント プロセスを表すアクセス トークンへのハンドル。 このハンドルは、クライアントを偽装するスレッドのトークンを開いて取得されている必要があります。 トークンは、TOKEN_QUERYアクセスのために開いている必要があります。

[in, out] RequiredPrivileges

PRIVILEGE_SET構造体へのポインター。 この構造体の Privilege メンバーは、 LUID_AND_ATTRIBUTES 構造体の配列です。 PrivilegeCheck を呼び出す前に、Privilege 配列を使用して、チェックする権限のセットを示します。 すべての特権を有効にする必要がある場合は、 Control メンバーを PRIVILEGE_SET_ALL_NECESSARY に設定します。または、いずれかの特権を有効にするだけで十分な場合は、0 に設定します。

PrivilegeCheck が返されると、対応する特権が有効になっている場合、各LUID_AND_ATTRIBUTES構造体の Attributes メンバーはSE_PRIVILEGE_USED_FOR_ACCESSに設定されます。

[out] pfResult

指定された特権の一部またはすべてをアクセス トークンで有効にするかどうかを示すために関数が設定する値へのポインター。 PRIVILEGE_SET構造体の Control メンバーがPRIVILEGE_SET_ALL_NECESSARYを指定した場合、この値は TRUE になります。すべての特権が有効になっている場合のみです。それ以外の場合、特権のいずれかが有効になっている場合、この値は TRUE になります。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

アクセス トークンには、トークンに関連付けられているアカウントによって保持されている特権の一覧が含まれます。 これらの特権は有効または無効にすることができます。は既定で無効になっています。 PrivilegeCheck 関数は、有効な特権のみをチェックします。 アクセス トークンによって保持されているすべての有効および無効な特権の一覧を取得するには、 GetTokenInformation 関数を呼び出します。 アクセス トークンで一連の特権を有効または無効にするには、 AdjustTokenPrivileges 関数を呼び出します。

要件

要件 値
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー securitybaseapi.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

AdjustTokenPrivileges

クライアント/サーバー Access Control関数

クライアント/サーバー Access Controlの概要

GetTokenInformation

LUID_AND_ATTRIBUTES

LookupPrivilegeValue

ObjectPrivilegeAuditAlarm

PRIVILEGE_SET

PrivilegedServiceAuditAlarm