struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE (winnt.h)
Articolo
La struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE definisce una voce di controllo di accesso (ACE) 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 identificatore di sicurezza (SID) 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 oggetti figlio.
Quando viene chiamata la funzione AuthzAccessCheck , ogni struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE contenuta nell'elenco DACL di una struttura SECURITY_DESCRIPTOR passata attraverso un puntatore alla funzione AuthzAccessCheck richiama una chiamata al parametro AuthzAccessCheckCallback, in cui viene passato un puntatore alla struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE viene passato nel parametro pAce.
ACE_HEADER struttura che specifica le dimensioni e il tipo di ACE. Contiene flag che controllano l'ereditarietà dell'ace da oggetti figlio. Il membro AceType della struttura ACE_HEADER deve essere impostato su ACCESS_DENIED_CALLBACK_ACE_TYPE e il membro AceSize deve essere impostato sul numero totale di byte allocati per la struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE.
Mask
Un ACCESS_MASK che specifica i diritti di accesso negati dal sistema 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 objectType né InheritedObjectType. Il membro sidStart segue immediatamente dopo il membro flag .
ACE_OBJECT_TYPE_PRESENT
objectType è presente e contiene un GUID .
Se questo valore non viene specificato, il membro InheritedObjectType segue immediatamente dopo il membro flag .
ACE_INHERITED_OBJECT_TYPE_PRESENT
l' 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 di ACE_OBJECT_TYPE_PRESENT è impostato nel membro Flag. 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 ObjectTypeGUID identifica un diritto di accesso esteso.
ADS_RIGHT_DS_CREATE_CHILD
L'ObjectType identifica un tipo di oggetto figlio. Ace controlla il diritto del trustee per creare questo tipo di oggetto figlio.
ADS_RIGHT_DS_READ_PROP
L'ObjectTypeGUID identifica un set di proprietà o una proprietà dell'oggetto . L'ace controlla il diritto del trustee di leggere la proprietà o il set di proprietà.
ADS_RIGHT_DS_WRITE_PROP
L'ObjectTypeGUID 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
L'ObjectTypeGUID identifica una scrittura convalidata.
InheritedObjectType
Questo membro esiste solo se il bit ACE_INHERITED_OBJECT_TYPE_PRESENT è impostato nel membro flag .
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à nella ACE_HEADER, nonché da qualsiasi protezione dall'ereditarietà applicata agli 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
Il primo DWORD del SID di un trustee.
I byte rimanenti del SID vengono archiviati in memoria contigua dopo il membro SidStart. Questo SID può essere aggiunto con i dati dell'applicazione.
Osservazioni
Se non viene specificato né ObjectType né GUI D GUID, la struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE ha la stessa semantica di quelle utilizzate dalla struttura ACCESS_DENIED_CALLBACK_ACE. In tal caso, usare la struttura ACCESS_DENIED_CALLBACK_ACE perché è più piccola ed efficiente.
Un elenco di controllo di accesso contenente un ACCESS_DENIED_CALLBACK_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 .
Quando viene creata una struttura ACCESS_DENIED_CALLBACK_OBJECT_ACE, è necessario allocare memoria sufficiente per contenere le strutture GUID nel ObjectType e membri InheritedObjectType, se ne esiste uno o entrambi, nonché per contenere il SID completo del truste nel membro SidStart e la memoria contigua che la segue.