Partager via


FltSetSecurityObject, fonction (fltkernel.h)

FltSetSecurityObject définit l’état de sécurité d’un objet.

Syntaxe

NTSTATUS FLTAPI FltSetSecurityObject(
  [in] PFLT_INSTANCE        Instance,
  [in] PFILE_OBJECT         FileObject,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

Paramètres

[in] Instance

Pointeur d’instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] FileObject

Pointeur d’objet de fichier pour l’objet dont l’état de sécurité doit être défini. L’appelant doit avoir l’accès spécifié dans la colonne Signification de la table indiquée dans la description du paramètre SecurityInformation. Ce paramètre est obligatoire et ne peut pas être NULL.

[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.
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.
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.

[in] SecurityDescriptor

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

Valeur de retour

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

Retourner le code Description
STATUS_ACCESS_DENIED L’appelant n’a pas eu l’accès requis. Il s’agit d’un code d’erreur.
STATUS_ACCESS_VIOLATION SecurityDescriptor était un pointeur NULL. Il s’agit d’un code d’erreur.
STATUS_INSUFFICIENT_RESOURCES Impossible de capturer le descripteur de sécurité de l’objet. Il s’agit d’un code d’erreur.
STATUS_INVALID_ACL Le descripteur de sécurité de l’objet contenait une liste de contrôle d’accès non valide. Il s’agit d’un code d’erreur.
STATUS_INVALID_SECURITY_DESCR securityDescriptor ne pointait pas vers un descripteur de sécurité valide. Il s’agit d’un code d’erreur.
STATUS_INVALID_SID Le descripteur de sécurité de l’objet contenait un SID non valide. Il s’agit d’un code d’erreur.
STATUS_UNKNOWN_REVISION Le niveau de révision du descripteur de sécurité de l’objet était inconnu ou non pris en charge. Il s’agit d’un code d’erreur.
STATUS_NOT_IMPLEMENTED La routine FltSetSecurityObject est présente, mais pas prise en charge dans l’environnement du système d’exploitation dans lequel elle a été appelée.

Remarques

La routine FltSetSecurityObject est présente et prise en charge à partir de Windows Vista. Dans Windows 2000, Windows XP et Server 2003 SP1, la routine est présente, mais pas prise en charge, et retourne STATUS_NOT_IMPLEMENTED si elle est appelée dans l’un de ces environnements.

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 la documentation sur ces rubriques dans le Kit de développement logiciel (SDK) Windows.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwQuerySecurityObject

ZwSetSecurityObject

FltQuerySecurityObject