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