Condividi tramite


struttura EXPLICIT_ACCESS_A (accctrl.h)

La struttura EXPLICIT_ACCESS definisce le informazioni di controllo di accesso per un trustee specificato. Funzioni di controllo di accesso, ad esempio SetEntriesInAcl e GetExplicitEntriesFromAcl, usare questa struttura per descrivere le informazioni in un voce di controllo di accesso(ACE) di un elenco di controllo di accesso (ACL).

Sintassi

typedef struct _EXPLICIT_ACCESS_A {
  DWORD       grfAccessPermissions;
  ACCESS_MODE grfAccessMode;
  DWORD       grfInheritance;
  TRUSTEE_A   Trustee;
} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;

Membri

grfAccessPermissions

Set di flag di bit che usano il formato ACCESS_MASK per specificare i diritti di accesso consentiti, negati o controllati per il trustee. Le funzioni che usano la struttura EXPLICIT_ACCESS non convertono, interpretano o convalidano i bit in questa maschera.

grfAccessMode

Valore dell'enumerazione ACCESS_MODE. Per un elenco di controllo di accesso discrezionale (DACL), questo flag indica se l'ACL consente o nega i diritti di accesso specificati. Per un elenco di controllo di accesso di sistema (SACL), questo flag indica se l'ACL genera messaggi di controllo per i tentativi riusciti di utilizzare i diritti di accesso specificati o entrambi i tentativi non riusciti. Quando si modifica un ACL esistente, è possibile specificare il flag di REVOKE_ACCESS per rimuovere gli ACL esistenti per il trustee specificato.

grfInheritance

Set di flag di bit che determina se altri contenitori o oggetti possono ereditare l'ace dall'oggetto primario a cui è associato l'ACL. Il valore di questo membro corrisponde alla parte di ereditarietà (byte a basso ordine) del AceFlags membro della struttura ACE_HEADER. Questo parametro può essere NO_INHERITANCE per indicare che l'ace non è ereditabile; oppure può essere una combinazione dei valori seguenti.

Valore Significato
CONTAINER_INHERIT_ACE
Gli altri contenitori contenuti nell'oggetto primario ereditano l'ace.
INHERIT_NO_PROPAGATE
Ereditare ma non propagare.
INHERIT_ONLY
Eredita solo.
INHERIT_ONLY_ACE
L'ace non si applica all'oggetto primario a cui è associato l'ACL, ma gli oggetti contenuti nell'oggetto primario ereditano l'ace.
NO_INHERITANCE
Non ereditare.
NO_PROPAGATE_INHERIT_ACE
I flag OBJECT_INHERIT_ACE e CONTAINER_INHERIT_ACE non vengono propagati a un ace ereditato.
OBJECT_INHERIT_ACE
Gli oggetti non contenitore contenuti nell'oggetto primario ereditano l'ace.
SUB_CONTAINERS_AND_OBJECTS_INHERIT
Entrambi i contenitori e gli oggetti non contenitore contenuti nell'oggetto primario ereditano l'oggetto ACE. Questo flag corrisponde alla combinazione dei flag CONTAINER_INHERIT_ACE e OBJECT_INHERIT_ACE.
SUB_CONTAINERS_ONLY_INHERIT
Gli altri contenitori contenuti nell'oggetto primario ereditano l'ace. Questo flag corrisponde al flag CONTAINER_INHERIT_ACE.
SUB_OBJECTS_ONLY_INHERIT
Gli oggetti non contenitore contenuti nell'oggetto primario ereditano l'ace. Questo flag corrisponde al flag OBJECT_INHERIT_ACE.

Trustee

Struttura TRUSTEE che identifica l'utente, il gruppo o il programma (ad esempio un servizio Windows) a cui si applica l'ace.

Osservazioni

Nota

L'intestazione accctrl.h definisce EXPLICIT_ACCESS_ come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
intestazione accctrl.h

Vedere anche

ACCESS_MASK

ACCESS_MODE

ace

ACE_HEADER

ACL

BuildExplicitAccessWithName

buildSecurityDescriptor

GetExplicitEntriesFromAcl

LookupSecurityDescriptorParts

SetEntriesInAcl

TRUSTEE