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
SeOpenObjectForDeleteAuditAlarm