ACCESS_ALLOWED_OBJECT_ACE struttura (winnt.h)
La struttura ACCESS_ALLOWED_OBJECT_ACE definisce una voce di controllo di accesso (ACE) che controlla l'accesso a un oggetto, a un set di proprietà o a una proprietà. L'ACE contiene un set di diritti di accesso, un GUID che identifica il tipo di oggetto e un identificatore di sicurezza (SID) che identifica l'attendibilità a cui il sistema concederà l'accesso. L'ACE contiene anche un GUID e un set di flag che controllano l'ereditarietà dell'ACE dagli oggetti figlio.
Sintassi
typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;
Members
Header
ACE_HEADER struttura che specifica le dimensioni e il tipo di ACE. Contiene anche flag che controllano l'ereditarietà dell'ACE dagli oggetti figlio. Il membro AceType della struttura ACE_HEADER deve essere impostato su ACCESS_ALLOWED_OBJECT_ACE_TYPE e il membro AceSize deve essere impostato sul numero totale di byte allocati per la struttura ACCESS_ALLOWED_OBJECT_ACE.
Mask
Un ACCESS_MASK che specifica i diritti di accesso consentiti 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.
ObjectType
Questo membro esiste solo se il bit di ACE_OBJECT_TYPE_PRESENT è impostato nel membro Flags . In caso contrario, il membro InheritedObjectType segue immediatamente dopo il membro Flags .
Se questo membro esiste, è 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 .
InheritedObjectType
Questo membro esiste solo se il bit di ACE_INHERITED_OBJECT_TYPE_PRESENT è impostato nel membro Flags .
Se questo membro esiste, è 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 all'offset specificato dal membro ObjectType .
SidStart
Specifica il primo DWORD di un SID che identifica il trustee a cui vengono concessi 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 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 GUIDObjectType o InheritedObjectType, la struttura ACCESS_ALLOWED_OBJECT_ACE ha la stessa semantica utilizzata dalla struttura ACCESS_ALLOWED_ACE. In tal caso, usare la struttura ACCESS_ALLOWED_ACE perché è più piccola e più efficiente.
Un elenco di controllo di controllo di accesso che contiene un ACCESS_ALLOWED_OBJECT_ACE deve specificare il numero di revisione ACL_REVISION_DS nell'intestazione ACL .
I diritti di accesso specificati dal membro Mask vengono concessi a qualsiasi trustee che possiede un SID abilitato che corrisponde al SID archiviato nel membro SidStart .
Una struttura ACCESS_ALLOWED_OBJECT_ACE può essere creata in un elenco di controllo di accesso (ACL) da una chiamata alla funzione AddAccessAllowedObjectAce . 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 ACCESS_ALLOWED_OBJECT_ACE viene creata all'esterno di un elenco di controllo di accesso, è necessario allocare memoria sufficiente per ospitare le strutture GUID nei membri ObjectType e InheritedObjectType , se esiste una o entrambe, nonché per supportare il SID completo del trustee nel membro SidStart e la memoria contigua che segue. 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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per