struttura ACCESS_DENIED_OBJECT_ACE (winnt.h)

La struttura ACCESS_DENIED_OBJECT_ACE definisce una voce di controllo di accesso che controlla l'accesso negato a un oggetto, a un set di proprietà o a una proprietà. Ace contiene un set di diritti di accesso, un GUID che identifica il tipo di oggetto e un SID (Security Identifier ) che identifica il trustee a cui il sistema negherà l'accesso. Ace contiene anche un GUID e un set di flag che controllano l'ereditarietà dell'ace da parte di oggetti figlio.

Sintassi

typedef struct _ACCESS_DENIED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;

Members

Header

ACE_HEADER struttura che specifica le dimensioni e il tipo di ACE. Contiene flag che controllano l'ereditarietà dell'ace dagli oggetti figlio. Il membro AceType della struttura ACE_HEADER deve essere impostato su ACCESS_DENIED_OBJECT_ACE_TYPE e il membro AceSize deve essere impostato sul numero totale di byte allocati per la struttura ACCESS_DENIED_OBJECT_ACE .

Mask

Un ACCESS_MASK che specifica i diritti di accesso che il sistema negherà al trustee.

Flags

Set di flag di bit che indicano se sono presenti i membri ObjectType e InheritedObjectType . Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
0
Non sono presenti ObjectTypeInheritedObjectType . Il membro SidStart segue immediatamente dopo il membro Flags .
ACE_OBJECT_TYPE_PRESENT
ObjectType è presente e contiene un GUID.

Se questo valore non viene specificato, il membro InheritedObjectType segue immediatamente dopo il membro Flags .

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType è presente e contiene un GUID.

Se questo valore non viene specificato, tutti i tipi di oggetti figlio possono ereditare l'ACE.

ObjectType

Questo membro esiste solo se il bit ACE_OBJECT_TYPE_PRESENT è impostato nel membro Flags . In caso contrario, il membro InheritedObjectType segue immediatamente dopo il membro Flags .

Se il membro esiste, si tratta di una struttura GUID che identifica un set di proprietà, una proprietà, un diritto esteso o un tipo di oggetto figlio. Lo scopo di questo GUID dipende dai diritti di accesso specificati nel membro Mask .

Valore Significato
ADS_RIGHT_DS_CONTROL_ACCESS
Il GUIDObjectType identifica un diritto di accesso esteso.
ADS_RIGHT_DS_CREATE_CHILD
Il GUIDObjectType identifica un tipo di oggetto figlio. Ace controlla il diritto del trustee per creare questo tipo di oggetto figlio.
ADS_RIGHT_DS_READ_PROP
Il GUIDObjectType identifica un set di proprietà o una proprietà dell'oggetto . Ace controlla il diritto del trustee per leggere la proprietà o il set di proprietà.
ADS_RIGHT_DS_WRITE_PROP
Il GUIDObjectType identifica un set di proprietà o una proprietà dell'oggetto . Ace controlla il diritto del trustee per scrivere la proprietà o il set di proprietà.
ADS_RIGHT_DS_SELF
Il GUIDObjectType identifica una scrittura convalidata.

InheritedObjectType

Questo membro esiste solo se il bit ACE_INHERITED_OBJECT_TYPE_PRESENT è impostato nel membro Flags .

Se il membro esiste, si tratta di una struttura GUID che identifica il tipo di oggetto figlio che può ereditare l'ACE. 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 con l'offset specificato dal membro ObjectType .

SidStart

Specifica il primo DWORD di un SID che identifica il trustee per cui vengono negati i diritti 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 con l'offset specificato dal membro ObjectType . Se Flags contiene un solo flag (ACE_OBJECT_TYPE_PRESENT o ACE_INHERITED_OBJECT_TYPE_PRESENT), il membro SidStart inizia con l'offset specificato dal membro InheritedObjectType .

Commenti

Se non viene specificato né il GUIDObjectTypeInheritedObjectType, la struttura ACCESS_DENIED_OBJECT_ACE ha la stessa semantica di quelle utilizzate dalla struttura ACCESS_DENIED_ACE. In tal caso, usare la struttura ACCESS_DENIED_ACE perché è più piccola ed efficiente.

Un elenco di controllo di accesso che contiene un ACCESS_DENIED_OBJECT_ACE deve specificare il numero di revisione ACL_REVISION_DS nell'intestazione ACL .

I diritti di accesso specificati dal membro Mask vengono negati a qualsiasi trustee che possiede un SID abilitato che corrisponde al SID archiviato nel membro SidStart .

Una struttura ACCESS_DENIED_OBJECT_ACE può essere creata in un elenco di controllo di accesso (ACL) tramite una chiamata alla funzione AddAccessDeniedObjectAce . Quando si usa questa funzione, la quantità di memoria corretta necessaria per contenere le strutture GUID nei membri ObjectType e InheritedObjectType , se ne esiste una o entrambe, nonché per contenere il SID del trustee viene allocata automaticamente. Inoltre, i valori dei membri Header.AceType e Header.AceSize vengono impostati automaticamente. Quando viene creata una struttura ACCESS_DENIED_OBJECT_ACE all'esterno di un ACL, è necessario allocare memoria sufficiente per contenere le strutture GUID nei membri ObjectType e InheritedObjectType , se uno o entrambi esistono, nonché per contenere il SID completo del trustee nel membro SidStart e la memoria contigua successiva. Inoltre, i valori dei membri Header.AceType e Header.AceSize devono essere impostati in modo esplicito dall'applicazione.

Requisiti

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

Vedi anche

ACE

ACL

AddAccessAllowedObjectAce

GUID

SID