IRP_MJ_SET_QUOTA (pilotes FS et filtre)

Date d’envoi

Le Gestionnaire d’E/S envoie la requête IRP_MJ_SET_QUOTA. Il peut être envoyé, par exemple, lorsqu’une application en mode utilisateur a appelé une méthode Win32 telle que IDiskQuotaControl ::SetQuotaState.

Opération : Pilotes de système de fichiers

IRP_MJ_SET_QUOTA et IRP_MJ_QUERY_QUOTA existaient dans Windows NT 4.0, mais n’étaient pas utilisés par les systèmes de fichiers. Sur les systèmes Windows 2000 et versions ultérieures, ils sont utilisés pour la prise en charge des quotas de disque dans NTFS. La prise en charge de ces IRPs par les nouveaux systèmes de fichiers est facultative.

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

Le pilote de filtre doit transmettre cette IRP au pilote inférieur suivant de la pile, sauf s’il doit remplacer explicitement le comportement du quota.

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 d’informations de quota :

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

  • DeviceObject->Indicateurs : si l’indicateur DO_BUFFERED_IO est défini, l’appelant a demandé METHOD_BUFFERED E/S. Sinon, l’appelant a demandé METHOD_NEITHER E/S.

  • Irp->AssociatedIrp.SystemBuffer pointe vers une mémoire tampon fournie par le système à utiliser comme mémoire tampon système intermédiaire, si l’indicateur DO_BUFFERED_IO est défini dans DeviceObject-Flags>. Sinon, ce membre a la valeur NULL.

  • 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 fournie par l’appelant qui contient les entrées de quota à ajouter ou à modifier pour le volume.

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

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_SET_QUOTA et ne doit pas être utilisé.

  • IrpSp->MajorFunction est défini sur IRP_MJ_SET_QUOTA.

  • IrpSp->Parameters.SetQuota.Length est la longueur, en octets, de la mémoire tampon pointée par Irp-UserBuffer>.

Voir aussi

FILE_QUOTA_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoCheckQuotaBufferValidity

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_QUERY_QUOTA