IRP_MJ_QUERY_SECURITY (pilotes FS et filtre)

Date d’envoi

Le Gestionnaire d’E/S envoie la demande de IRP_MJ_QUERY_SECURITY. Il peut être envoyé, par exemple, lorsqu’une application en mode utilisateur a appelé une fonction Win32 telle que GetSecurityInfo.

Opération : Pilotes de système de fichiers

Le pilote de système de fichiers doit extraire et décoder l’objet de fichier pour déterminer s’il représente un fichier utilisateur ou un répertoire ouvert. Si c’est le cas, le pilote doit traiter la requête et terminer l’IRP. Dans le cas contraire, le pilote doit effectuer l’IRP comme il convient sans traiter la requête.

Opération : Pilotes de filtre de système de fichiers hérités

Le pilote de filtre doit passer cette IRP au pilote inférieur suivant de la pile.

Paramètres

Un système de fichiers ou un pilote de filtre appelle IoGetCurrentIrpStackLocation pour que l’IRP donné obtienne un pointeur vers son propre emplacement de pile dans l’IRP. Dans les paramètres suivants, Irp pointe vers l’IRP et IrpSp pointe vers le IO_STACK_LOCATION. Le pilote peut utiliser les informations définies dans les membres suivants de l’IRP et de l’emplacement de la pile IRP pour traiter une demande de sécurité de requête :

  • DeviceObject est un pointeur vers l’objet d’appareil cible.

  • Irp->IoStatus pointe vers une structure IO_STATUS_BLOCK qui reçoit la status d’achèvement finale et des informations sur l’opération demandée.

  • Irp->UserBuffer pointe vers une mémoire tampon de sortie fournie par l’appelant qui reçoit une copie du descripteur de sécurité de l’objet spécifié. Le processus appelant doit avoir le droit d’afficher les aspects spécifiés de la status de sécurité de l’objet. La structure SECURITY_DESCRIPTOR est retournée dans un format auto-relatif.

  • IrpSp->FileObject pointe vers l’objet de fichier associé à DeviceObject.

    Sur Windows XP et versions ultérieures, l’objet fichier 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.

    Le paramètre IrpSp-FileObject> contient un pointeur vers le champ RelatedFileObject, qui est également une structure FILE_OBJECT. Le champ RelatedFileObject de la structure FILE_OBJECT n’est pas valide pendant le traitement de IRP_MJ_QUERY_SECURITY et ne doit pas être utilisé.

  • IrpSp->MajorFunction a la valeur IRP_MJ_QUERY_SECURITY.

  • IrpSp->Parameters.QuerySecurity.Length est la taille, en octets, de la mémoire tampon pointée par le paramètre Irp-UserBuffer>.

  • IrpSp->Parameters.QuerySecurity.SecurityInformation pointe vers la structure SECURITY_INFORMATION pour l’opération. Cette valeur peut être une combinaison valide des bits suivants.

    Valeur SecurityInformation Signification
    OWNER_SECURITY_INFORMATION Indique que l’identificateur du propriétaire de l’objet est interrogé. Nécessite un accès READ_CONTROL.
    GROUP_SECURITY_INFORMATION Indique que l’identificateur de groupe principal de l’objet est en cours d’interrogation. Nécessite un accès READ_CONTROL.
    DACL_SECURITY_INFORMATION Indique que 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 Indique que l’ACL système (SACL) de l’objet est interrogé. Nécessite un accès ACCESS_SYSTEM_SECURITY.

Voir aussi

FILE_STREAM_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_SET_SECURITY

SECURITY_DESCRIPTOR

SECURITY_INFORMATION