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 |