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
可包含以下结构之一的联合。 此联合允许在访问状态结构中嵌入三个权限。 如果在操作期间需要更多特权,则会在 AuxData 成员扩展中分配这些权限。 驱动程序当前未使用此成员。
Privileges.InitialPrivilegeSet
一个INITIAL_PRIVILEGE_SET结构,用于指定一组初始访问权限。
Privileges.PrivilegeSet
一个PRIVILEGE_SET结构,用于指定访问的一组特权。
AuditPrivileges
一个布尔值,指定是否应审核特权使用情况。 驱动程序当前未使用此成员。
ObjectName
包含访问的对象名称字符串 的UNICODE_STRING 结构。 此成员用于审核。
ObjectTypeName
包含访问的对象类型名称字符串 的UNICODE_STRING 结构。 此成员用于审核。
要求
要求 | 值 |
---|---|
Header | wdm.h (包括 Ntifs.h) |
另请参阅
SeOpenObjectForDeleteAuditAlarm