SYSTEM_AUDIT_OBJECT_ACE struttura (winnt.h)

La struttura SYSTEM_AUDIT_OBJECT_ACE definisce una voce di controllo di accesso (ACE) per un elenco di controllo di accesso del sistema (SACL). L'ACE può controllare l'accesso a un oggetto o a un sottooggetto, ad esempio set di proprietà o proprietà. L'ACE contiene un set di diritti di accesso, un GUID che identifica il tipo di oggetto o subobject e un identificatore di sicurezza (SID) che identifica l'attendibilità per cui il sistema controlla l'accesso. La voce ACE contiene anche un GUID e un insieme di flag che controllano l'ereditarietà della voce ACE da parte degli oggetti figlio.

Sintassi

typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE;

Members

Header

Struttura ACE_HEADER che specifica le dimensioni e il tipo di ACE. Contiene flag che controllano l'ereditarietà dell'ACE dagli oggetti figlio. La struttura contiene anche flag che indicano se i tentativi di accesso ace hanno esito positivo, tentativi di accesso non riusciti o entrambi. Il membro AceType della struttura ACE_HEADER deve essere impostato su SYSTEM_AUDIT_OBJECT_ACE_TYPE e il membro AceSize deve essere impostato sul numero totale di byte allocati per la struttura SYSTEM_AUDIT_OBJECT_ACE.

Mask

Un ACCESS_MASK che specifica i diritti di accesso del sistema verificherà i tentativi di accesso dal trustee.

Flags

Set di flag di bit che indicano se i membri ObjectType e InheritedObjectType contengono GUID. Questo membro può essere una combinazione dei valori seguenti. Impostare tutti i bit non definiti su zero.

Valore Significato
ACE_OBJECT_TYPE_PRESENT
Il membro ObjectType contiene un GUID.
ACE_INHERITED_OBJECT_TYPE_PRESENT
Il membro InheritedObjectType contiene un GUID.

ObjectType

Struttura GUID che identifica un set di proprietà, una proprietà, un diritto esteso o un tipo di oggetto figlio.

Questo membro è valido solo se il bit di ACE_OBJECT_TYPE_PRESENT è impostato nel membro Flags . In caso contrario, ObjectType viene ignorato.

Lo scopo di questo GUID dipende dai diritti di accesso specificati nel membro Mask .

Questo membro può essere uno dei valori seguenti.

Valore Significato
ADS_RIGHT_DS_READ_PROP e/o ADS_RIGHT_DS_WRITE_PROP
Il GUID ObjectType identifica un set di proprietà o una proprietà dell'oggetto. L'ACE controlla il controllo dei tentativi del trustee di leggere o scrivere la proprietà o il set di proprietà.
ADS_RIGHT_DS_CONTROL_ACCESS
Il GUID ObjectType identifica un diritto di accesso esteso.
ADS_RIGHT_DS_CREATE_CHILD
Il GUID ObjectType identifica un tipo di oggetto figlio. L'ACE controlla il controllo dei tentativi del trustee di creare questo tipo di oggetto figlio.
ADS_RIGHT_DS_SELF
Il GUID ObjectType identifica una scrittura convalidata.

InheritedObjectType

Struttura GUID che identifica il tipo di oggetto figlio che può ereditare l'ACE.

Questo membro è valido solo se il bit di ACE_INHERITED_OBJECT_TYPE_PRESENT è impostato nel membro Flags . Se tale bit non è impostato, InheritedObjectType viene ignorato e tutti i tipi di oggetti figlio possono ereditare l'ACE. In entrambi i casi, l'ereditarietà è controllata anche dai flag di ereditarietà nel ACE_HEADER, nonché da qualsiasi protezione contro l'ereditarietà inserita negli oggetti figlio.

L'offset di questo membro può variare. Se il membro Flags non contiene il flag ACE_OBJECT_TYPE_PRESENT, il membro InheritedObjectType inizia all'offset specificato dal membro ObjectType .

SidStart

Specifica il primo DWORD di un SID che identifica il trustee per cui vengono controllati i tentativi di accesso. I byte rimanenti del SID vengono archiviati in memoria contigua dopo il membro SidStart . Questo SID può essere aggiunto con i dati dell'applicazione.

L'offset di questo membro può variare. Se il membro Flags è zero, il membro SidStart inizia all'offset specificato dal membro ObjectType . Se Flag contiene un solo flag (ACE_OBJECT_TYPE_PRESENT o ACE_INHERITED_OBJECT_TYPE_PRESENT), il membro SidStart inizia all'offset specificato dal membro InheritedObjectType .

Commenti

Se non viene specificato il GUID ObjectType o InheritedObjectType , la struttura SYSTEM_AUDIT_OBJECT_ACE ha la stessa semantica della struttura SYSTEM_AUDIT_ACE . In tal caso, usare la struttura SYSTEM_AUDIT_ACE perché è più piccola e più efficiente.

Un elenco di controllo di controllo di accesso che contiene un SYSTEM_AUDIT_OBJECT_ACE deve specificare il numero di revisione ACL_REVISION_DS nella relativa struttura di ACE_HEADER .

Quando viene creata una struttura SYSTEM_AUDIT_OBJECT_ACE , è necessario allocare memoria sufficiente per ospitare le strutture GUID nei membri ObjectType e InheritedObjectType , se esiste una o entrambe le strutture, nonché per ospitare il SID completo del truste nel membro SidStart e la memoria contigua che segue.

Una struttura SYSTEM_AUDIT_OBJECT_ACE può essere creata in un elenco di controllo di accesso (ACL) da una chiamata alla funzione AddAuditAccessObjectAce . Quando questa funzione viene usata, la quantità di memoria corretta necessaria per ospitare le strutture GUID nei membri ObjectType e InheritedObjectType , se esiste una o entrambe le risorse, nonché per ospitare automaticamente il SID del trustee. Inoltre, i valori dei membri Header.AceType e Header.AceSize vengono impostati automaticamente. Quando una struttura SYSTEM_AUDIT_OBJECT_ACE viene creata all'esterno di un ACL, è necessario allocare memoria sufficiente per ospitare le strutture GUID nei membri ObjectType e InheritedObjectType , se esiste una o entrambe le strutture, nonché per supportare il SID completo del trustee nel membro SidStart e la memoria contigua seguente. Inoltre, i valori dei membri Header.AceType e Header.AceSize devono essere impostati in modo esplicito dall'applicazione.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winnt.h (includere Windows.h)

Vedi anche

ACL

AddAuditAccessObjectAce

GUID

SID