IOCTL_VOLUME_LOGICAL_TO_PHYSICAL IOCTL (ntddvol.h)
Devuelve desplazamientos físicos y números de disco físicos para un desplazamiento lógico de volumen determinado.
Por ejemplo, un desplazamiento de volumen lógico dentro de un volumen reflejado con dos plex corresponde a dos desplazamientos físicos, uno en cada uno de los dos discos que participan en el reflejo. En respuesta a este IOCTL, el administrador de volúmenes devuelve dos desplazamientos físicos y dos números de disco físicos para el desplazamiento del volumen lógico.
El administrador de volúmenes admite este IOCTL para todos los tipos de volúmenes básicos y dinámicos.
Código principal
Búfer de entrada
El llamador inserta la estructura VOLUME_LOGICAL_OFFSET 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_LOGICAL_OFFSET).Búfer de salida
El tamaño del búfer de salida debe ser lo suficientemente grande como para contener la estructura VOLUME_PHYSICAL_OFFSETS, que contiene una matriz de longitud variable de estructuras de tipo VOLUME_PHYSICAL_OFFSET.
El administrador de volúmenes devuelve uno o varios desplazamientos físicos y números de disco en la estructura VOLUME_PHYSICAL_OFFSETS al principio del búfer, en Irp-AssociatedIrp.SystemBuffer>.
Longitud del búfer de salida
Parameters.DeviceIoControl.OutputBufferLength en la ubicación de pila de E/S del IRP indica el tamaño, en bytes, del búfer de salida.
Bloque de estado
Si la operación se realiza correctamente, el miembro Status se establece en STATUS_SUCCESS. De lo contrario, el miembro Status se establece en el código de error adecuado. Entre los posibles códigos de error se incluyen los siguientes:
STATUS_BUFFER_TOO_SMALL
El búfer de salida es demasiado pequeño. El administrador de volúmenes establece el miembro Irp-IoStatus.Information> en el tamaño del búfer de salida que debe haber proporcionado el autor de la llamada.
STATUS_INVALID_PARAMETER
El búfer de entrada es demasiado pequeño.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows XP. |
Encabezado | ntddvol.h (incluya Ntddvol.h) |