Compartir a través de


IOCTL_VOLUME_READ_PLEX IOCTL (ntddvol.h)

Realiza una lectura en un plex específico de un volumen. Dado que todos los plexos son idénticos, el administrador de volúmenes puede recuperar datos de cualquiera de los plexos de un volumen durante una operación de lectura normal. El administrador de volúmenes distribuye las lecturas entre los plexos de un volumen, para equilibrar la carga de E/S en los medios físicos y maximizar el rendimiento de lectura.

Sin embargo, si una aplicación o un componente en modo kernel deben leer datos de un plex determinado en lugar de permitir que el administrador de volúmenes elija uno, puede usar este IOCTL para hacerlo.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El autor de la llamada inserta la estructura VOLUME_READ_PLEX_INPUT, que contiene el desplazamiento lógico, al principio del búfer en Irp-AssociatedIrp.SystemBuffer>.

Longitud del búfer de entrada

Parameters.DeviceIoControl.InputBufferLength en la ubicación de la pila de E/S del IRP indica el tamaño, en bytes, del búfer de entrada, que debe ser mayor o igual que el valor de sizeof(VOLUME_READ_PLEX_INPUT).

Búfer de salida

Al igual que IRP_MJ_READ, este IOCTL almacena los datos de lectura en el búfer de memoria pasados como una lista de descriptores de memoria (MDL) en el campo Irp-MdlAddress>.

Longitud del búfer de salida

Longitud del búfer.

Bloque de estado

Si la operación se realiza correctamente, el administrador de volúmenes establece el campo Estado en STATUS_SUCCESS.

La estructura de VOLUME_READ_PLEX_INPUT en Irp-AssociatedIrp.SystemBuffer> tiene un miembro Length que debe alinearse en un límite de 512 bytes. Si Length no tiene la alineación adecuada, se produce un error en la operación y el administrador de volúmenes establece el campo Estado en VKE_EINVAL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows XP.
Encabezado ntddvol.h (incluya Ntddvol.h)

Consulte también

VOLUME_READ_PLEX_INPUT