Partager via


Fonction SeSetSecurityDescriptorInfo (ntifs.h)

La routine SeSetSecurityDescriptorInfo définit le descripteur de sécurité d’un objet.

Syntaxe

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

Paramètres

[in, optional] Object

Pointeur vers l’objet dont le descripteur de sécurité doit être défini. Il est utilisé pour mettre à jour les informations de quota de sécurité.

[in] SecurityInformation

Pointeur vers un masque de bits spécifiant les informations de sécurité à appliquer à l’objet. Il peut s’agir d’une combinaison d’une ou plusieurs des valeurs suivantes.

Valeur Signification
DACL_SECURITY_INFORMATION Indique que la liste de contrôle d’accès discrétionnaire (DACL) de l’objet est en cours de définition. Nécessite un accès WRITE_DAC.
GROUP_SECURITY_INFORMATION Indique que l’identificateur de groupe principal de l’objet est en cours de définition. Nécessite un accès WRITE_OWNER.
OWNER_SECURITY_INFORMATION Indique que l’identificateur de propriétaire de l’objet est en cours de définition. Nécessite un accès WRITE_OWNER.
SACL_SECURITY_INFORMATION Indique que l’ACL système (SACL) de l’objet est en cours de définition. Nécessite un accès ACCESS_SYSTEM_SECURITY.

ModificationDescriptor

Descripteur de sécurité d’entrée à appliquer à l’objet. L’appelant de cette routine est censé sonder et capturer le descripteur de sécurité passé avant d’appeler SeSetSecurityDescriptorInfo, et de le libérer par la suite.

[in, out] ObjectsSecurityDescriptor

Pointeur vers un pointeur vers le descripteur de sécurité de l’objet. Le descripteur de sécurité doit être au format auto-relatif. L’appelant est chargé de libérer cette structure quand elle n’est plus nécessaire.

[in] PoolType

Spécifie le type de pool à utiliser lors de l’allocation d’un nouveau descripteur de sécurité, qui peut être l’un des éléments suivants :

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

En règle générale, un appelant spécifie PagedPool, ou NonPagedPool si la mémoire tampon est accessible à l’adresse IRQL >= DISPATCH_LEVEL ou dans un contexte de thread arbitraire.

Les types de pool NonPagedPoolMustSucceed et NonPagedPoolCacheAlignedMustS sont obsolètes et ne doivent plus être utilisés.

[in] GenericMapping

Pointeur vers une structure de GENERIC_MAPPING qui spécifie le mappage des types d’accès génériques aux types d’accès spécifiques et standard pour l’objet accessible. Cette structure de mappage est censée être accessible en toute sécurité (c’est-à-dire capturée si nécessaire) avant d’être passée à cette routine.

Valeur retournée

Code de retour Description
STATUS_SUCCESS Le descripteur de sécurité de l’objet a été modifié avec succès.
STATUS_BAD_DESCRIPTOR_FORMAT Le descripteur de sécurité de l’objet fourni n’était pas au format auto-relatif.
STATUS_NO_SECURITY_ON_OBJECT L’objet n’a pas de descripteur de sécurité.

Remarques

SeSetSecurityDescriptorInfo modifie le descripteur de sécurité existant d’un objet. Si l’objet n’a pas de descripteur de sécurité, l’appel à SeSetSecurityDescriptorInfo échoue.

Pour spécifier si l’objet prend en charge l’héritage automatique des entrées de contrôle d’accès (ACE), utilisez SeSetSecurityDescriptorInfoEx.

Un descripteur de sécurité peut être sous forme absolue ou auto-relative. Sous forme auto-relative, tous les membres de la structure se trouvent contiguëment en mémoire. Sous forme absolue, la structure contient uniquement des pointeurs vers les membres.

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
Plateforme cible Universal
En-tête ntifs.h (inclure Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Voir aussi

ACE

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx