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 を含む) |
こちらもご覧ください
SeOpenObjectForDeleteAuditAlarm