Fonction FltQuerySecurityObject (fltkernel.h)

FltQuerySecurityObject récupère une copie du descripteur de sécurité d’un objet.

Syntaxe

NTSTATUS FLTAPI FltQuerySecurityObject(
  [in]            PFLT_INSTANCE        Instance,
  [in]            PFILE_OBJECT         FileObject,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [in, out]       PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]            ULONG                Length,
  [out, optional] PULONG               LengthNeeded
);

Paramètres

[in] Instance

Pointeur de instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] FileObject

Pointeur d’objet de fichier pour l’objet dont le descripteur de sécurité est interrogé. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] SecurityInformation

SECURITY_INFORMATION valeur. Ce paramètre est obligatoire et doit être l’un des éléments suivants :

Valeur SecurityInformation Signification
OWNER_SECURITY_INFORMATION L’identificateur du propriétaire de l’objet est en cours de requête. Nécessite un accès READ_CONTROL .
GROUP_SECURITY_INFORMATION L’identificateur de groupe principal de l’objet est en cours d’interrogation. Nécessite un accès READ_CONTROL .
DACL_SECURITY_INFORMATION La liste de contrôle d’accès discrétionnaire (DACL) de l’objet est interrogée. Nécessite un accès READ_CONTROL .
SACL_SECURITY_INFORMATION La liste de contrôle d’accès système (SACL) de l’objet est en cours de requête. Nécessite un accès ACCESS_SYSTEM_SECURITY .

[in, out] SecurityDescriptor

Pointeur vers une mémoire tampon de sortie fournie par l’appelant qui reçoit une copie du descripteur de sécurité pour l’objet spécifié. La structure SECURITY_DESCRIPTOR est retournée dans un format auto-relatif. Ce paramètre est facultatif et peut être NULL.

[in] Length

Taille, en octets, de la mémoire tampon SecurityDescriptor .

[out, optional] LengthNeeded

Pointeur vers une variable allouée à l’appelant qui reçoit le nombre d’octets requis pour stocker le descripteur de sécurité copié retourné dans la mémoire tampon vers laquelle pointe le paramètre SecurityDescriptor . Ce paramètre est facultatif et peut être NULL.

Valeur retournée

FltQuerySecurityObject retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_ACCESS_DENIED
L’appelant n’avait pas l’accès requis. Il s’agit d’un code d’erreur.
STATUS_BUFFER_TOO_SMALL
La mémoire tampon est trop petite pour contenir le descripteur de sécurité. Aucune des informations de sécurité n’a été copiée dans la mémoire tampon. Il s’agit d’un code d’erreur.

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 ses membres.

Le système de fichiers NTFS impose une limite de 64 Ko à la taille du descripteur de sécurité écrit sur le disque pour un fichier. (Le système de fichiers FAT ne prend pas en charge les descripteurs de sécurité pour les fichiers.) Ainsi, une mémoire tampon de 64 Ko pointée par le paramètre SecurityDescriptor est garantie comme suffisamment grande pour contenir la structure SECURITY_DESCRIPTOR retournée.

L’objet vers lequel pointe le paramètre FileObject peut représenter un flux de données nommé. Pour plus d’informations sur les flux de données nommés, consultez FILE_STREAM_INFORMATION.

Pour plus d’informations sur la sécurité et le contrôle d’accès, consultez la documentation Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

FILE_STREAM_INFORMATION

SECURITY_DESCRIPTOR

SECURITY_INFORMATION