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