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
RtlCreateSecurityDescriptorRelative