SeSetSecurityDescriptorInfo, fonction (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 définie. Nécessite un accès WRITE_DAC. |
GROUP_SECURITY_INFORMATION | Indique que l’identificateur de groupe principal de l’objet est défini. Nécessite un accès WRITE_OWNER. |
OWNER_SECURITY_INFORMATION | Indique que l’identificateur de propriétaire de l’objet est défini. Nécessite un accès WRITE_OWNER. |
SACL_SECURITY_INFORMATION | Indique que la liste de contrôle d’accès système (SACL) de l’objet est définie. 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 SeSetSecurityDescriptorInfoet 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 responsable de la libération de cette structure lorsqu’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 au >IRQL = DISPATCH_LEVEL ou dans un contexte de thread arbitraire.
Les types de pool NonPagedPoolMustSucceed et NonPagedPoolCacheAlignedMustS pool sont obsolètes et ne doivent plus être utilisés.
[in] GenericMapping
Pointeur vers une structure GENERIC_MAPPING qui spécifie le mappage de types d’accès génériques à des types d’accès spécifiques et standard pour l’objet accessible. Cette structure de mappage est censée être sécurisée pour accéder (autrement dit, capturée si nécessaire) avant d’être passée à cette routine.
Valeur de retour
Retourner le code | 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.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Voir aussi
RtlCreateSecurityDescriptorRelative