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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de