Partager via


Fonction NtSetSecurityObject (ntifs.h)

La routine NtSetSecurityObject définit l’état de sécurité d’un objet.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

Paramètres

[in] Handle

Handle pour l’objet dont l’état de sécurité doit être défini. Ce handle doit avoir l’accès spécifié dans la colonne Signification de la table indiquée dans la description du paramètre SecurityInformation.

[in] SecurityInformation

SECURITY_INFORMATION valeur spécifiant les informations à définir en tant que combinaison d’une ou plusieurs des valeurs suivantes.

Valeur Signification
OWNER_SECURITY_INFORMATION Indique que l’identificateur de propriétaire de l’objet doit être défini. Nécessite un accès WRITE_OWNER.
GROUP_SECURITY_INFORMATION Indique que l’identificateur de groupe principal de l’objet doit être 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 doit être définie. Nécessite un accès ACCESS_SYSTEM_SECURITY.
DACL_SECURITY_INFORMATION Indique que la liste de contrôle d’accès discrétionnaire (DACL) de l’objet doit être définie. Nécessite un accès WRITE_DAC.

[in] SecurityDescriptor

Pointeur vers le descripteur de sécurité à définir pour l’objet.

Valeur de retour

NtSetSecurityObject retourne STATUS_SUCCESS ou un état d’erreur approprié. Les codes d’état d’erreur possibles sont les suivants :

Retourner le code Description
STATUS_ACCESS_DENIED L’appelant n’a pas eu l’accès requis.
STATUS_ACCESS_VIOLATION SecurityDescriptor était un pointeur NULL.
STATUS_INSUFFICIENT_RESOURCES Impossible de capturer le descripteur de sécurité de l’objet.
STATUS_INVALID_ACL Le descripteur de sécurité de l’objet contenait une liste de contrôle d’accès non valide.
STATUS_INVALID_HANDLE Handle n’est pas un handle valide.
STATUS_INVALID_SECURITY_DESCR securityDescriptor ne pointait pas vers un descripteur de sécurité valide.
STATUS_INVALID_SID Le descripteur de sécurité de l’objet contenait un SID non valide.
STATUS_OBJECT_TYPE_MISMATCH Handle n’est pas un handle du type attendu.
STATUS_UNKNOWN_REVISION Le niveau de révision du descripteur de sécurité de l’objet était inconnu ou non pris en charge.

Remarques

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, consultez des descripteurs de sécurité absolus et Self-Relative.

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.

Les minifiltres doivent utiliser fltSetSecurityObject au lieu de NtSetSecurityObject.

Les appelants de NtSetSecurityObject doivent s’exécuter à IRQL = PASSIVE_LEVEL et avec des API de noyau spéciales activées.

Note

Si l’appel à la fonction NtSetSecurityObject se produit en mode utilisateur, vous devez utiliser le nom «NtSetSecurityObject» au lieu de «ZwSetSecurityObject».

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment de la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (voir la section Remarques)
règles de conformité DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Voir aussi

FltSetSecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

à l’aide de versions Nt et Zw des routines Native System Services

NtQuerySecurityObject

ZwSetSecurityObject