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 autor de la llamada inserta la estructura de 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 estado de se establece en STATUS_SUCCESS. De lo contrario, el miembro estado de se establece en el código de error adecuado. Entre los códigos de error posibles 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 | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows XP. |
encabezado de | ntddvol.h (incluya Ntddvol.h) |