AddAccessDeniedObjectAce, fonction (securitybaseapi.h)
La fonction AddAccessDeniedObjectAce ajoute une entrée de contrôle d’accès refusé (ACE) à la fin d’une liste de contrôle d’accès discrétionnaire (DACL). Le nouvel ACE peut refuser l’accès à un objet, à un jeu de propriétés ou à une propriété sur un objet. Vous pouvez également utiliser AddAccessDeniedObjectAce pour ajouter un ACE que seul un type spécifié d’objet enfant peut hériter.
Syntaxe
BOOL AddAccessDeniedObjectAce(
[in, out] PACL pAcl,
[in] DWORD dwAceRevision,
[in] DWORD AceFlags,
[in] DWORD AccessMask,
[in, optional] GUID *ObjectTypeGuid,
[in, optional] GUID *InheritedObjectTypeGuid,
[in] PSID pSid
);
Paramètres
[in, out] pAcl
Pointeur vers une liste de contrôle d’accès. La fonction AddAccessDeniedObjectAce ajoute un ACE refusé à l’accès à la fin de cette LISTE de contrôle d’accès. L’ACE se présente sous la forme d’une structure ACCESS_DENIED_OBJECT_ACE .
[in] dwAceRevision
Spécifie le niveau de révision de la liste de contrôle d’accès en cours de modification. Cette valeur doit être ACL_REVISION_DS. Si le niveau de révision du DACL est inférieur à ACL_REVISION_DS, la fonction le remplace par ACL_REVISION_DS.
[in] AceFlags
Ensemble d’indicateurs de bits qui contrôlent l’héritage ACE. La fonction définit ces indicateurs dans le membre AceFlags de la structure ACE_HEADER du nouvel ACE. Ce paramètre peut être une combinaison des valeurs suivantes.
Valeur | Signification |
---|---|
|
L’ACE est hérité par les objets conteneur. |
|
L’ACE ne s’applique pas à l’objet auquel la liste de contrôle d’accès (ACL) est affectée, mais elle peut être héritée par des objets enfants. |
|
Indique un ACE hérité. Cet indicateur permet aux opérations qui modifient la sécurité d’une arborescence d’objets de modifier les AFC hérités, sans modifier les AFC qui ont été directement appliqués à l’objet. |
|
Les bits OBJECT_INHERIT_ACE et CONTAINER_INHERIT_ACE ne sont pas propagés vers un ACE hérité. |
|
L’ACE est hérité par les objets non-contenus. |
[in] AccessMask
Ensemble d’indicateurs de bits qui utilisent le format ACCESS_MASK pour spécifier les droits d’accès que le nouvel ACE refuse à l’identificateur de sécurité (SID) spécifié.
[in, optional] ObjectTypeGuid
Pointeur vers une structure GUID qui identifie le type d’objet, de jeu de propriétés ou de propriété protégé par le nouvel ACE. Si ce paramètre a la valeur NULL, la nouvelle ACE protège l’objet auquel l’ACL est affectée.
[in, optional] InheritedObjectTypeGuid
Pointeur vers une structure GUID qui identifie le type d’objet qui peut hériter du nouvel ACE. Si ce paramètre n’est pas NULL, seul le type d’objet spécifié peut hériter de l’ACE. Si la valeur est NULL, n’importe quel type d’objet enfant peut hériter de l’ACE. Dans les deux cas, l’héritage est également contrôlé par la valeur du paramètre AceFlags , ainsi que par toute protection contre l’héritage placé sur les objets enfants.
[in] pSid
Pointeur vers un SID qui identifie l’utilisateur, le groupe ou la session d’ouverture de session auquel le nouvel ACE autorise l’accès.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. Voici les valeurs d’erreur possibles.
Code de retour | Description |
---|---|
|
La nouvelle ACE ne s’intègre pas dans la liste de contrôle d’accès. Une mémoire tampon ACL plus grande est requise. |
|
La liste de contrôle d’accès spécifiée n’est pas correctement formée. |
|
Le paramètre AceFlags n’est pas valide. |
|
Le SID spécifié n’est pas structurellement valide. |
|
La révision spécifiée n’est pas connue ou est incompatible avec celle de la liste de contrôle d’accès. |
|
L’ACE a été ajouté avec succès. |
Remarques
Si ObjectTypeGuid et InheritedObjectTypeGuid ont la valeur NULL, utilisez la fonction AddAccessDeniedAceEx plutôt que AddAccessDeniedObjectAce. Cela est suggéré parce qu’un ACCESS_DENIED_ACE est plus petit et plus efficace qu’un ACCESS_DENIED_OBJECT_ACE.
Bien que la fonction AddAccessDeniedObjectAce ajoute le nouvel ACE à la fin de la liste de contrôle d’accès, les points d’accès refusés doivent apparaître au début d’une liste de contrôle d’accès. L’appelant doit s’assurer que les AIC sont ajoutés à la liste dacl dans l’ordre correct. Pour plus d’informations, consultez Ordre des entrées ACE dans une liste de contrôle d’accès discrétionnaire (DACL).
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | securitybaseapi.h (inclure Windows.h) |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |