Share via


ACCESS_STATE 構造体 (wdm.h)

ACCESS_STATE構造体は、進行中のアクセスの状態を表します。 これには、オブジェクトのサブジェクト コンテキスト、残りの必要なアクセスの種類、付与されたアクセスの種類、および必要に応じて、アクセスを許可するために使用された特権を示す特権セットが含まれています。

ドライバーは、ACCESS_STATE構造を直接変更する必要はありません。 この構造体を作成して操作するには、「関連項目」セクションに記載されているサポート ルーチンを使用します。

構文

typedef struct _ACCESS_STATE {
  LUID                     OperationID;
  BOOLEAN                  SecurityEvaluated;
  BOOLEAN                  GenerateAudit;
  BOOLEAN                  GenerateOnClose;
  BOOLEAN                  PrivilegesAllocated;
  ULONG                    Flags;
  ACCESS_MASK              RemainingDesiredAccess;
  ACCESS_MASK              PreviouslyGrantedAccess;
  ACCESS_MASK              OriginalDesiredAccess;
  SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
  PSECURITY_DESCRIPTOR     SecurityDescriptor;
  PVOID                    AuxData;
  union {
    INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
    PRIVILEGE_SET         PrivilegeSet;
  } Privileges;
  BOOLEAN                  AuditPrivileges;
  UNICODE_STRING           ObjectName;
  UNICODE_STRING           ObjectTypeName;
} ACCESS_STATE, *PACCESS_STATE;

メンバー

OperationID

このアクセスに関連する操作の識別子。 このメンバーは AuxData メンバーの TransactionId に置き換えられ、現在ドライバーでは使用されていません。

SecurityEvaluated

セキュリティがアクセス チェックの一部として評価されたかどうかを示すブール値。 このメンバーは現在、ドライバーによって使用されていません。

GenerateAudit

アクセスで監査を生成するかどうかを指定するブール値。 このメンバーは現在、ドライバーによって使用されていません。

GenerateOnClose

作成されるハンドルを閉じるときに監査を生成するかどうかを指定するブール値。 このメンバーは現在、ドライバーによって使用されていません。

PrivilegesAllocated

アクセス チェックの一部として特権が割り当てられたかどうかを示すブール値。 このメンバーは現在、ドライバーによって使用されていません。

Flags

アクセス用のビット フィールド フラグを含む 32 ビット値。 ドライバーは、走査アクセス フラグ (TOKEN_HAS_TRAVERSE_PRIVILEGE) をチェックできます。 走査アクセスをチェックする方法の詳細については、「IRP_MJ_CREATEでの走査特権の確認」を参照してください。 ドライバーは、TOKEN_IS_RESTRICTED フラグのチェックすることもできます。 これらのフラグは Ntifs.h で定義されています。

RemainingDesiredAccess

出し元にまだ付与されていないアクセス権を記述するACCESS_MASK型。 ドライバーは、このメンバーを使用して、Windows セキュリティ システムがアクセスを許可できるかどうかを判断します。 アクセスを許可できる場合、ドライバーは必要に応じて PreviouslyGrantedAccess メンバーと RemainingDesiredAccess メンバーを更新します。

PreviouslyGrantedAccess

セキュリティ参照モニター ルーチンの呼び出し元に既に付与されているアクセスに関する情報を指定するACCESS_MASK型。 Windows セキュリティ システムは、呼び出し元の特権に基づいて特定の権限を付与します 。たとえば、右方向 (サブディレクトリまたはファイルを開く一部としてディレクトリを走査する機能) などです。

OriginalDesiredAccess

呼び出 元によって要求された元のアクセス権を含むACCESS_MASK型。

SubjectSecurityContext

アクセス 検証と監査に使用されるサブジェクト セキュリティ コンテキストに関する情報を含むSECURITY_SUBJECT_CONTEXT構造体。

SecurityDescriptor

このアクセスが関連するオブジェクトのセキュリティ情報を含む SECURITY_DESCRIPTOR構造体への ポインター。

AuxData

アクセスの補助データを含むメモリ ブロックへのポインター。

Privileges

次のいずれかの構造体を含めることができる共用体。 この共用体を使用すると、アクセス状態構造に 3 つの特権を埋め込めます。 操作中にそれ以上の特権が必要な場合は、 AuxData メンバー拡張機能に割り当てられます。 このメンバーは現在、ドライバーによって使用されていません。

Privileges.InitialPrivilegeSet

アクセス 初期特権のセットを指定するINITIAL_PRIVILEGE_SET構造体。

Privileges.PrivilegeSet

アクセスに対する特権のセットを指定する PRIVILEGE_SET 構造体。

AuditPrivileges

特権の使用状況を監査するかどうかを指定するブール値。 このメンバーは現在、ドライバーによって使用されていません。

ObjectName

アクセスのオブジェクト名文字列を含む UNICODE_STRING 構造体。 このメンバーは監査に使用されます。

ObjectTypeName

アクセス オブジェクト型名文字列を含むUNICODE_STRING構造体。 このメンバーは監査に使用されます。

要件

要件
Header wdm.h (Ntifs.h を含む)

こちらもご覧ください

ACCESS_MASK

IRP_MJ_CREATE

LUID

ObOpenObjectByPointer

PRIVILEGE_SET

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeAppendPrivileges

SeCaptureSubjectContext

SeOpenObjectAuditAlarm

SeOpenObjectForDeleteAuditAlarm

SeSetAccessStateGenericMapping

UNICODE_STRING