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

[入力]アクセスされるオブジェクトを保護するセキュリティ情報を含む SECURITY_DESCRIPTOR 構造体へのポインター。

PrimaryToken

[入力]プライマリ トークンの不透明な ACCESS_TOKEN 構造体へのポインター。 この構造体は、アクセスチェックを実行するために必要なトークンの情報を提供します。

ClientToken

[in_opt]クライアント トークンの不透明なACCESS_TOKEN構造体への省略可能なポインター。

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 状態値へのポインター。 「解説」を参照してください。

戻り値

アクセスが許可されている場合、SeAccessCheckFromStateEx は TRUE を返します。アクセスが許可されていない場合は FALSE を返します。

注釈

SeAccessCheckFromStateEx は、要求されるアクセスに応じて、次の特権のテストを実行する場合があります。

  • SeTakeOwnershipPrivilege
  • SeSecurityPrivilege

また、このルーチンは、WRITE_DACまたはREAD_CONTROLアクセスを許可するために、呼び出し元が オブジェクトの所有者であるかどうかをチェックする場合もあります。

このルーチンが FALSE を返す場合、呼び出し元は返された AccessStatus を戻り値として使用する必要があります。 つまり、呼び出し元は、戻り値STATUS_ACCESS_DENIEDまたはその他の特定のSTATUS_XXX 値をハードコーディングしないようにする必要があります。

このルーチンは DPC レベルから呼び出される可能性があるため、ページングできません。

要件

要件
サポートされている最小のクライアント Windows 2000
Header ntifs.h

こちらもご覧ください

SeAccessCheck

SeAccessCheckFromState