IRP_MJ_QUERY_EA (controladores de filtro y FS)

Cuándo se envió

El Administrador de E/S, otros componentes del sistema operativo y otros controladores en modo kernel envían solicitudes IRP_MJ_QUERY_EA cuando una aplicación en modo de usuario ha solicitado información sobre los atributos extendidos de un archivo.

Operación: controladores del sistema de archivos

Si el sistema de archivos admite atributos extendidos, el controlador del sistema de archivos debe procesar la consulta y completar el IRP. De lo contrario, debe devolver STATUS_EAS_NOT_SUPPORTED.

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.

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 establecida en los siguientes miembros del IRP y la ubicación de la pila irP para procesar una solicitud de IRP_MJ_QUERY_EA:

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

  • Irp->AssociatedIrp.SystemBuffer apunta a un búfer de salida proporcionado por el sistema que se usará como búfer intermedio del sistema. Se usa para METHOD_BUFFERED E/S.

  • 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->MdlAddress es la dirección de una lista de descriptores de memoria (MDL) que describe un búfer de salida que recibe la información del atributo extendido. Se usa para METHOD_DIRECT E/S.

  • Irp->UserBuffer apunta a un búfer de salida estructurado FILE_FULL_EA_INFORMATION proporcionado por el autor de la llamada que recibe la información de atributo extendida. Se usa para METHOD_NEITHER E/S.

  • 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_QUERY_EA y no se debe usar.

  • IrpSp->Las marcas pueden ser uno o varios de los valores siguientes.

Marca Significado
SL_INDEX_SPECIFIED Comience el examen en la entrada de la lista de atributos extendidos cuyo índice recibe IrpSp-Parameters.QueryEa.EaIndex>.
SL_RESTART_SCAN Comience el examen en la primera entrada de la lista. Si no se establece esta marca, reanude el examen de una solicitud de IRP_MJ_QUERY_EA anterior.
SL_RETURN_SINGLE_ENTRY Devuelve solo la primera entrada que se encuentra.
  • IrpSp->MajorFunction se establece en IRP_MJ_QUERY_EA.

  • IrpSp->Parameters.QueryEa.EaIndex es el índice de la entrada en la que se comienza a examinar la lista de atributos extendidos. Este parámetro se omite si la marca SL_INDEX_SPECIFIED no está establecida o si IrpSp-Parameters.QueryEa.EaList> apunta a una lista no vacía.

  • IrpSp->Parameters.QueryEa.EaList apunta a un búfer de entrada estructurado FILE_GET_EA_INFORMATION proporcionado por el autor de la llamada que especifica los atributos extendidos que se van a consultar.

  • IrpSp->Parameters.QueryEa.EaListLength es la longitud en bytes del búfer al que apunta IrpSp-Parameters.QueryEa.EaList>.

  • IrpSp->Parameters.QueryEa.Length es la longitud en bytes del búfer de salida.

Comentarios

Cuando se proporciona un búfer corto y se devuelve STATUS_BUFFER_OVERFLOW, NTFS devuelve la última entrada FILE_FULL_EA_INFORMATION completa que se ajusta. Cuando se proporciona un búfer corto y se devuelve STATUS_BUFFER_TOO_SMALL, NTFS no pudo ajustarse a ninguna entrada de FILE_FULL_EA_INFORMATION.

En Windows Vista y versiones posteriores, FAT16 ya no admite atributos extendidos.

Consulte también

FILE_FULL_EA_INFORMATION

FILE_GET_EA_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoCheckEaBufferValidity

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_SET_EA