Condividi tramite


ACCESS_STATE struttura (wdm.h)

La struttura ACCESS_STATE descrive lo stato di un accesso in corso. Contiene il contesto soggetto di un oggetto, i tipi di accesso desiderati rimanenti, i tipi di accesso concessi e, facoltativamente, un set di privilegi per indicare quali privilegi sono stati usati per consentire l'accesso.

I driver non devono modificare direttamente la struttura ACCESS_STATE. Per creare e modificare questa struttura, usare le routine di supporto elencate nella sezione Vedere anche.

Sintassi

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;

Members

OperationID

Identificatore dell'operazione a cui si riferisce l'accesso. Questo membro viene sostituito da TransactionId nel membro AuxData ed è attualmente inutilizzato dai driver.

SecurityEvaluated

Valore booleano che specifica se la sicurezza è stata valutata come parte del controllo di accesso. Questo membro è attualmente inutilizzato dai driver.

GenerateAudit

Valore booleano che specifica se l'accesso deve generare un controllo. Questo membro è attualmente inutilizzato dai driver.

GenerateOnClose

Valore booleano che specifica se un controllo deve essere generato quando l'handle creato viene chiuso. Questo membro è attualmente inutilizzato dai driver.

PrivilegesAllocated

Valore booleano che specifica se i privilegi sono stati allocati come parte del controllo di accesso. Questo membro è attualmente inutilizzato dai driver.

Flags

Valore a 32 bit che contiene flag di campo bit per l'accesso. Un driver può verificare la presenza del flag di accesso incrociato (TOKEN_HAS_TRAVERSE_PRIVILEGE). Per altre informazioni su come verificare la presenza dell'accesso in attraversamento, vedere Verificare la presenza di privilegi traverse in IRP_MJ_CREATE. Un driver può anche verificare la presenza del flag di TOKEN_IS_RESTRICTED. Questi flag sono definiti in Ntifs.h.

RemainingDesiredAccess

Tipo ACCESS_MASK che descrive i diritti di accesso che non sono ancora stati concessi al chiamante. Un driver usa questo membro per determinare se il sistema di sicurezza di Windows può concedere l'accesso. Se è possibile concedere l'accesso, il driver aggiorna di conseguenza i membri In precedenzaGrantedAccess e RemainingDesiredAccess .

PreviouslyGrantedAccess

Tipo ACCESS_MASK che specifica le informazioni sull'accesso già concesso al chiamante di una delle routine di monitoraggio dei riferimenti alla sicurezza. Il sistema di sicurezza di Windows concede determinati diritti in base ai privilegi del chiamante, ad esempio l'attraversamento destro (la possibilità di attraversare attraverso una directory come parte dell'apertura di una sottodirectory o di un file).

OriginalDesiredAccess

Tipo ACCESS_MASK contenente i diritti di accesso originali richiesti dal chiamante.

SubjectSecurityContext

Struttura SECURITY_SUBJECT_CONTEXT che contiene informazioni sul contesto di sicurezza soggetto utilizzato per convalidare e controllare l'accesso.

SecurityDescriptor

Puntatore a una struttura SECURITY_DESCRIPTOR che contiene informazioni di sicurezza per l'oggetto a cui si riferisce l'accesso.

AuxData

Puntatore a un blocco di memoria che contiene dati ausiliari per l'accesso.

Privileges

Unione che può contenere una delle strutture seguenti. Questa unione consente di incorporare tre privilegi nella struttura dello stato di accesso. Se sono necessari altri privilegi durante l'operazione, verranno allocati nell'estensione membro AuxData . Questo membro è attualmente inutilizzato dai driver.

Privileges.InitialPrivilegeSet

Struttura INITIAL_PRIVILEGE_SET che specifica un set di privilegi iniziali per l'accesso.

Privileges.PrivilegeSet

Struttura PRIVILEGE_SET che specifica un set di privilegi per l'accesso.

AuditPrivileges

Valore booleano che specifica se è necessario controllare un utilizzo dei privilegi. Questo membro è attualmente inutilizzato dai driver.

ObjectName

Struttura UNICODE_STRING contenente la stringa nome oggetto per l'accesso. Questo membro viene usato per il controllo.

ObjectTypeName

Struttura UNICODE_STRING contenente la stringa nome del tipo di oggetto per l'accesso. Questo membro viene usato per il controllo.

Requisiti

Requisito Valore
Intestazione wdm.h (include Ntifs.h)

Vedi anche

ACCESS_MASK

IRP_MJ_CREATE

LUID

ObOpenObjectByPointer

PRIVILEGE_SET

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeAppendPrivileges

SeCaptureSubjectContext

SeOpenObjectAuditAlarm

SeOpenObjectForDeleteAuditAlarm

SeSetAccessStateGenericMapping

UNICODE_STRING