IRP_MJ_SET_QUOTA (controladores de filtro y FS)

Cuándo se envió

El Administrador de E/S envía la solicitud de IRP_MJ_SET_QUOTA. Se puede enviar, por ejemplo, cuando una aplicación en modo de usuario ha llamado a un método Win32 como IDiskQuotaControl::SetQuotaState.

Operación: controladores del sistema de archivos

IRP_MJ_SET_QUOTA y IRP_MJ_QUERY_QUOTA existían en Windows NT 4.0, pero los sistemas de archivos no los usaban. En los sistemas Windows 2000 y versiones posteriores, se usan para la compatibilidad con la cuota de disco en NTFS. La compatibilidad con estos IRP por los nuevos sistemas de archivos es opcional.

Operación: controladores de filtro del sistema de archivos heredados

El controlador de filtro debe pasar este IRP al siguiente controlador inferior de la pila, a menos que tenga que invalidar explícitamente el comportamiento de la cuota.

Parámetros

Un controlador de filtro o sistema de archivos llama a IoGetCurrentIrpStackLocation para que el IRP especificado obtenga un puntero a su propia ubicación de pila en el IRP. En los parámetros siguientes, Irp apunta a IRP e IrpSp apunta al IO_STACK_LOCATION. El controlador puede usar la información que se establece en los siguientes miembros del IRP y la ubicación de la pila de IRP para procesar una solicitud de información de cuota establecida:

  • DeviceObject es un puntero al objeto de dispositivo de destino.

  • DeviceObject:>Marcas : si se establece la marca de DO_BUFFERED_IO, el autor de la llamada ha solicitado METHOD_BUFFERED E/S. De lo contrario, el autor de la llamada ha solicitado METHOD_NEITHER E/S.

  • Irp->AssociatedIrp.SystemBuffer apunta a un búfer proporcionado por el sistema que se usará como búfer intermedio del sistema, si la marca DO_BUFFERED_IO está establecida en DeviceObject-Flags>. De lo contrario, este miembro se establece en NULL.

  • Irp->IoStatus apunta a una estructura de IO_STATUS_BLOCK que recibe el estado de finalización final e información sobre la operación solicitada.

  • Irp->UserBuffer apunta a un búfer proporcionado por el autor de la llamada que contiene las entradas de cuota que se van a agregar o modificar para el volumen.

  • IrpSp->FileObject apunta al objeto de archivo asociado a DeviceObject.

El parámetro IrpSp-FileObject> contiene un puntero al campo RelatedFileObject, que también es una estructura FILE_OBJECT. El campo RelatedFileObject de la estructura FILE_OBJECT no es válido durante el procesamiento de IRP_MJ_SET_QUOTA y no se debe usar.

  • IrpSp->MajorFunction se establece en IRP_MJ_SET_QUOTA.

  • IrpSp->Parameters.SetQuota.Length es la longitud, en bytes, del búfer al que apunta Irp-UserBuffer>.

Consulte también

FILE_QUOTA_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoCheckQuotaBufferValidity

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_QUERY_QUOTA