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 Meaning de la table indiquée dans la description du paramètre SecurityInformation .
[in] SecurityInformation
Valeur SECURITY_INFORMATION spécifiant les informations à interroger sous la forme d’une combinaison d’une ou de plusieurs des opérations suivantes.
Valeur | Signification |
---|---|
OWNER_SECURITY_INFORMATION | L’identificateur du 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 | L’ACL 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 à l’appelant que ZwQuerySecurityObject remplit avec une copie du descripteur de sécurité spécifié. La structure SECURITY_DESCRIPTOR est retournée dans un 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 retournée
ZwQuerySecurityObject retourne STATUS_SUCCESS ou une erreur appropriée status. Les codes status d’erreur possibles sont les suivants :
Code de retour | Description |
---|---|
STATUS_ACCESS_DENIED | Le 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 Descripteurs de sécurité absolus et Self-Relative.
Le système de fichiers NTFS impose une limite de 64 Ko sur 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 SecurityDescriptor de 64 Ko est garantie pour être suffisamment grande pour contenir la structure 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 minifiltres doivent appeler FltQuerySecurityObject au lieu de ZwQuerySecurityObject.
Notes
Si l’appel à la fonction ZwQuerySecurityObject se produit en mode utilisateur, vous devez utiliser le nom « NtQuerySecurityObject » au lieu de « ZwQuerySecurityObject ».
Pour les appels provenant de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP |
Plateforme cible | Universal |
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) |