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 安全性系統是否可以授與存取權。 如果可以授與存取權,驅動程式會據 以更新 PreviouslyGrantedAccessRemainingDesiredAccess 成員。

PreviouslyGrantedAccess

ACCESS_MASK類型,指定已授與其中一個安全性參考監視器例程之呼叫者存取權的相關信息。 Windows 安全性系統會根據呼叫者的許可權授與特定許可權,例如周遊許可權, (開啟子目錄或檔案) 時周遊目錄的能力。

OriginalDesiredAccess

ACCESS_MASK類型,其中包含呼叫端所要求的原始訪問許可權。

SubjectSecurityContext

SECURITY_SUBJECT_CONTEXT 結構,其中包含用來驗證和稽核存取之主體安全性內容的相關信息。

SecurityDescriptor

SECURITY_DESCRIPTOR 結構的指標,其中包含此存取所關聯之對象的安全性資訊。

AuxData

記憶體區塊的指標,其中包含存取的輔助數據。

Privileges

可以包含下列其中一個結構的等位。 這個聯集可讓三個許可權內嵌在存取狀態結構中。 如果在作業期間需要更多許可權,則會在 AuxData 成員延伸模組中配置這些許可權。 驅動程式目前未使用這個成員。

Privileges.InitialPrivilegeSet

INITIAL_PRIVILEGE_SET 結構,指定存取權的初始許可權集。

Privileges.PrivilegeSet

指定一組存取許可權 的PRIVILEGE_SET 結構。

AuditPrivileges

布爾值,指定是否應該稽核許可權使用方式。 驅動程式目前未使用這個成員。

ObjectName

包含存取物件名稱字串 的UNICODE_STRING 結構。 此成員用於稽核。

ObjectTypeName

包含存取物件類型名稱字串 的UNICODE_STRING 結構。 此成員用於稽核。

規格需求

需求
標頭 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