SeAccessCheckFromState 関数 (ntifs.h)
SeAccessCheckFromState は、要求されたアクセス権を、セキュリティ記述子とオプションのオブジェクト所有者によって保護されているオブジェクトに付与できるかどうかを確認します。
構文
BOOLEAN SeAccessCheckFromState(
PSECURITY_DESCRIPTOR SecurityDescriptor,
PTOKEN_ACCESS_INFORMATION PrimaryTokenInformation,
PTOKEN_ACCESS_INFORMATION ClientTokenInformation,
ACCESS_MASK DesiredAccess,
ACCESS_MASK PreviouslyGrantedAccess,
PPRIVILEGE_SET *Privileges,
PGENERIC_MAPPING GenericMapping,
KPROCESSOR_MODE AccessMode,
PACCESS_MASK GrantedAccess,
PNTSTATUS AccessStatus
);
パラメーター
SecurityDescriptor
[入力]アクセスされるオブジェクトを保護するセキュリティ情報を含む SECURITY_DESCRIPTOR 構造体へのポインター。
PrimaryTokenInformation
[入力]プライマリ トークンからキャプチャされた TOKEN_ACCESS_INFORMATION 構造体へのポインター。 この構造体は、アクセス チェックを実行するために必要なトークンの情報を提供します。
ClientTokenInformation
[in_opt]クライアント トークンからキャプチャされた TOKEN_ACCESS_INFORMATION 構造体への省略可能なポインター。
DesiredAccess
[入力]チェックに対する必要なアクセス権を指定するACCESS_MASK値。
PreviouslyGrantedAccess
[入力]ユーザー が 既に付与されているアクセス権を指定するACCESS_MASK値。たとえば、特権を保持した結果です。
Privileges
[out]アクセス 検証の一 部として使用された特権を示す特権セットが返されるPRIVILEGE_SET構造体へのポインター。
GenericMapping
[入力]このオブジェクト型に関連付けられている GENERIC_MAPPING 構造体へのポインター。
AccessMode
[入力]チェックで使用するプロセッサ モードを指定するKPROCESSOR_MODE値。 AccessMode には、 KernelMode または UserMode のいずれかを指定できます。 下位レベルのドライバーでは 、KernelMode を指定する必要があります。
GrantedAccess
[out]許可されたアクセスを示す、返された ACCESS_MASK 値へのポインター。
AccessStatus
[out]アクセスが拒否された理由を示すために返すことができる NT 状態値へのポインター。 「解説」を参照してください。
戻り値
アクセスが許可されている場合、SeAccessCheckFromState は TRUE を返します。アクセスが許可されていない場合は FALSE を返します。
注釈
SeAccessCheckFromState は、要求されているアクセスに応じて、次の特権のテストを実行する場合があります。
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
また、このルーチンでは、呼び出し元がオブジェクトの所有者であるかどうかをチェックして、WRITE_DACまたはREAD_CONTROLアクセスを許可することもできます。
このルーチンが FALSE を返す場合、呼び出し元は返された AccessStatus を戻り値として使用する必要があります。 つまり、呼び出し元は、STATUS_ACCESS_DENIEDまたはその他の特定のSTATUS_XXX 値の戻り値をハードコーディングしないようにする必要があります。
このルーチンは DPC レベルから呼び出される可能性があるため、ページング可能にすることはできません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 |
Header | ntifs.h (ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |