estrutura ACCESS_STATE (wdm.h)
A estrutura ACCESS_STATE descreve o estado de um acesso em andamento. Ele contém o contexto de assunto de um objeto, os tipos de acesso desejados restantes, os tipos de acesso concedidos e, opcionalmente, um conjunto de privilégios para indicar quais privilégios foram usados para permitir o acesso.
Os drivers não devem modificar a estrutura de ACCESS_STATE diretamente. Para criar e manipular essa estrutura, use as rotinas de suporte listadas na seção Consulte também.
Sintaxe
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;
Membros
OperationID
O identificador da operação à qual esse acesso está relacionado. Esse membro é substituído por TransactionId no membro AuxData e atualmente não é usado por drivers.
SecurityEvaluated
Um valor booliano que especifica se a segurança foi avaliada como parte da marcar de acesso. No momento, esse membro não é usado por drivers.
GenerateAudit
Um valor booliano que especifica se o acesso deve gerar uma auditoria. No momento, esse membro não é usado por drivers.
GenerateOnClose
Um valor booliano que especifica se uma auditoria deve ser gerada quando o identificador que está sendo criado é fechado. No momento, esse membro não é usado por drivers.
PrivilegesAllocated
Um valor booliano que especifica se os privilégios foram alocados como parte da marcar de acesso. No momento, esse membro não é usado por drivers.
Flags
Um valor de 32 bits que contém sinalizadores de campo de bit para o acesso. Um driver pode marcar para o sinalizador de acesso de passagem (TOKEN_HAS_TRAVERSE_PRIVILEGE). Para obter mais informações sobre como marcar para acesso de passagem, consulte Verificar o privilégio de passagem em IRP_MJ_CREATE. Um driver também pode marcar para o sinalizador TOKEN_IS_RESTRICTED. Esses sinalizadores são definidos em Ntifs.h.
RemainingDesiredAccess
Um tipo de ACCESS_MASK que descreve os direitos de acesso que ainda não foram concedidos ao chamador. Um driver usa esse membro para determinar se o sistema de segurança do Windows pode conceder acesso. Se o acesso puder ser concedido, o driver atualizará os membros PreviouslyGrantedAccess e RemainingDesiredAccess adequadamente.
PreviouslyGrantedAccess
Um tipo de ACCESS_MASK que especifica as informações sobre o acesso que já foram concedidas ao chamador de uma das Rotinas do Monitor de Referência de Segurança. O sistema de segurança do Windows concede determinados direitos com base nos privilégios do chamador, como percorrer à direita (a capacidade de percorrer um diretório como parte da abertura de um subdiretório ou arquivo).
OriginalDesiredAccess
Um tipo de ACCESS_MASK que contém os direitos de acesso originais que foram solicitados pelo chamador.
SubjectSecurityContext
Uma estrutura SECURITY_SUBJECT_CONTEXT que contém informações sobre o contexto de segurança do assunto que é usado para validar e auditar o acesso.
SecurityDescriptor
Um ponteiro para uma estrutura SECURITY_DESCRIPTOR que contém informações de segurança para o objeto ao qual esse acesso está relacionado.
AuxData
Um ponteiro para um bloco de memória que contém dados auxiliares para o acesso.
Privileges
Uma união que pode conter uma das estruturas a seguir. Essa união permite que três privilégios sejam inseridos na estrutura de estado de acesso. Se mais privilégios forem necessários durante a operação, eles serão alocados na extensão de membro AuxData . No momento, esse membro não é usado por drivers.
Privileges.InitialPrivilegeSet
Uma estrutura INITIAL_PRIVILEGE_SET que especifica um conjunto de privilégios iniciais para o acesso.
Privileges.PrivilegeSet
Uma estrutura PRIVILEGE_SET que especifica um conjunto de privilégios para o acesso.
AuditPrivileges
Um valor booliano que especifica se um uso de privilégio deve ser auditado. No momento, esse membro não é usado por drivers.
ObjectName
Uma estrutura UNICODE_STRING que contém a cadeia de caracteres de nome do objeto para o acesso. Esse membro é usado para auditoria.
ObjectTypeName
Uma estrutura UNICODE_STRING que contém a cadeia de caracteres de nome do tipo de objeto para o acesso. Esse membro é usado para auditoria.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | wdm.h (inclua Ntifs.h) |
Confira também
SeOpenObjectForDeleteAuditAlarm