Partager via


Fonction RtlAddAce (ntifs.h)

La routine RtlAddAce ajoute une ou plusieurs entrées de contrôle d’accès (AE) à une liste de contrôle d’accès (ACL) spécifiée.

Syntaxe

NTSYSAPI NTSTATUS RtlAddAce(
  [in, out] PACL  Acl,
  [in]      ULONG AceRevision,
  [in]      ULONG StartingAceIndex,
  [in]      PVOID AceList,
  [in]      ULONG AceListLength
);

Paramètres

[in, out] Acl

Pointeur vers la liste de contrôle d’accès à modifier. RtlAddAce ajoute les AAC spécifiés à cette liste de contrôle d’accès.

[in] AceRevision

Niveau de révision ACL de l’ACE à ajouter. Les réquirments de version Windows sont les suivants :

Valeur Signification
ACL_REVISION Niveau de révision valide sur toutes les versions de Windows.
ACL_REVISION_DS Niveau de révision valide à partir de Windows 2000.

AceRevision doit être ACL_REVISION_DS si la liste de contrôle d’accès dans Acl contient un ACE spécifique à l’objet.

[in] StartingAceIndex

Spécifie la position dans la liste des ACL des AES à laquelle ajouter de nouveaux AIC. La valeur zéro insère les AE au début de la liste. Une valeur de MAXULONG ajoute les AIC à la fin de la liste.

[in] AceList

Pointeur vers une mémoire tampon contenant une liste d’un ou plusieurs AIC à ajouter à la liste de contrôle d’accès spécifiée. Les ACÉ de la liste doivent être stockés de manière contiguë.

[in] AceListLength

Taille, en octets, de la mémoire tampon d’entrée pointée vers le paramètre AceList .

Valeur retournée

RtlAddAce retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une des valeurs suivantes :

Code de retour Description
STATUS_BUFFER_TOO_SMALL Les nouveaux AE ne s’intègrent pas dans la liste de contrôle d’accès. Une mémoire tampon ACL plus grande est requise. STATUS_BUFFER_TOO_SMALL est un code d’erreur.
STATUS_INVALID_PARAMETER L’une des valeurs de paramètre n’était pas valide. Les raisons possibles incluent le fait que l’ACL spécifiée n’est pas valide ou que la révision spécifiée est inconnue, qu’elle n’est pas compatible avec les révisions de la liste ACE ou qu’elle n’est pas compatible avec la révision de l’ACL. STATUS_INVALID_PARAMETER est un code d’erreur.

Remarques

Pour plus d’informations sur le calcul de la taille d’une liste de contrôle d’accès, consultez la section Remarques de l’entrée de référence pour RtlCreateAcl.

Pour obtenir un pointeur vers un ACE dans une liste de contrôle d’accès, utilisez RtlGetAce.

Pour supprimer un ACE d’une liste de contrôle d’accès, utilisez RtlDeleteAce.

Pour ajouter un ACE autorisé à accéder à une liste de contrôle d’accès, utilisez RtlAddAccessAllowedAce.

Pour plus d’informations sur la sécurité et le contrôle d’accès, consultez Modèle de sécurité Windows pour les développeurs de pilotes et la documentation sur ces rubriques dans le Kit de développement logiciel (SDK) Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Server 2003 avec SP1
Plateforme cible Universal
En-tête ntifs.h (inclure Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe (mode noyau) ; Ntdll.dll (mode utilisateur)
IRQL <= APC_LEVEL

Voir aussi

ACE

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce