Partager via


ZwQuerySecurityObject, fonction (ntifs.h)

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

Syntaxe

NTSYSAPI NTSTATUS ZwQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

Paramètres

[in] Handle

Handle pour l’objet dont le descripteur de sécurité doit être interrogé. 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

Valeur SECURITY_INFORMATION spécifiant les informations à interroger en tant que combinaison d’une ou plusieurs des options suivantes.

Valeur Signification
OWNER_SECURITY_INFORMATION L’identificateur de propriétaire de l’objet est interrogé. Nécessite un accès READ_CONTROL.
GROUP_SECURITY_INFORMATION L’identificateur de groupe principal de l’objet est interrogé. 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 interrogée. Nécessite un accès ACCESS_SYSTEM_SECURITY.
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.

[out] SecurityDescriptor

Mémoire tampon allouée par l’appelant qui ZwQuerySecurityObject remplit une copie du descripteur de sécurité spécifié. La structure SECURITY_DESCRIPTOR est retournée au format auto-relatif.

[in] Length

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

[out] LengthNeeded

Pointeur vers une variable allouée par l’appelant qui reçoit le nombre d’octets requis pour stocker le descripteur de sécurité copié.

Valeur de retour

ZwQuerySecurityObject 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 Handle n’avait pas l’accès requis.
STATUS_BUFFER_TOO_SMALL La mémoire tampon est trop petite pour le descripteur de sécurité. Aucune des informations de sécurité n’a été copiée dans la mémoire tampon.
STATUS_INVALID_HANDLE Handle n’était pas un handle valide.
STATUS_OBJECT_TYPE_MISMATCH Handle n’était pas un handle du type attendu.

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.

Le système de fichiers NTFS impose une limite de 64 Ko à la taille du descripteur de sécurité écrit sur 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 SecurityDescriptor 64K est garantie d’être suffisamment grande pour contenir la structure de SECURITY_DESCRIPTOR retournée.

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 minifilters doivent appeler FltQuerySecurityObject au lieu de ZwQuerySecurityObject.

Note

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

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
règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwSetSecurityObject