Método IVdsLun::Extend (vdshwprv.h)
[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]
Extiende un LUN por un número especificado de bytes.
Sintaxis
HRESULT Extend(
[in] ULONGLONG ullNumberOfBytesToAdd,
[in] VDS_OBJECT_ID *pDriveIdArray,
[in] LONG lNumberOfDrives,
[out] IVdsAsync **ppAsync
);
Parámetros
[in] ullNumberOfBytesToAdd
Número de bytes por los que se va a extender el LUN. No es necesario que el número de bytes sea un múltiplo par del tamaño de bloque o sector de las unidades. El proveedor puede redondear el número de bytes hacia arriba o hacia abajo para cumplir los requisitos de alineación u otras restricciones. En la mayoría de los casos, el proveedor redondea, lo que garantiza que, con excepciones excepcionales, el LUN se extiende por lo menos el número de bytes solicitados.
[in] pDriveIdArray
Puntero a una matriz de GUID de unidad. El proveedor usa estas unidades para extender el LUN. Las unidades se usan en la secuencia especificada; el proveedor usa todas las extensiones de una unidad antes de pasar a la siguiente y se detiene cuando el LUN se ha ampliado por el número solicitado de bytes.
Como alternativa, el autor de la llamada puede dirigir al proveedor para seleccionar las unidades automáticamente pasando NULL en este parámetro y cero en el parámetro lNumberOfDrives . Tenga en cuenta que pasar NULL solo es válido si el parámetro lNumberOfDrives es cero.
[in] lNumberOfDrives
Número de unidades especificadas en el parámetro pDriveIdArray . Si el autor de la llamada pasa cero, el proveedor selecciona las unidades.
[out] ppAsync
Dirección de un puntero de interfaz IVdsAsync , que VDS inicializa al devolver. Los autores de llamadas deben liberar la interfaz. Use esta interfaz para cancelar, esperar o consultar el estado de la operación.
Valor devuelto
Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores se pueden originar en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los posibles valores devueltos se incluyen los siguientes.
Código o valor devuelto | Descripción |
---|---|
|
Este valor devuelto indica un problema de software o comunicación dentro de un proveedor que almacena en caché información sobre la matriz. Use el método IVdsHwProvider::Reenumerate seguido del método IVdsHwProvider::Refresh para restaurar la memoria caché. |
|
El objeto LUN ya no está presente. |
|
El LUN está en estado de error y no puede realizar la operación solicitada. |
|
Otra operación está en curso; esta operación no puede continuar hasta que se completen las operaciones o operaciones anteriores. |
|
Se puede devolver desde cualquier método que tome una constante VDS_OBJECT_ID . Este valor devuelto indica que el identificador no hace referencia a un objeto existente. |
|
Este proveedor no admite esta operación o combinación de parámetros. |
|
No hay suficiente espacio utilizable para esta operación. |
|
No hay suficientes unidades libres en el subsistema para completar esta operación. |
Comentarios
Los autores de llamadas pueden especificar una lista de unidades que el proveedor usará para extender el LUN o dirigir al proveedor para seleccionar las unidades automáticamente.
Después de extender el LUN, el autor de la llamada debe usar el código de control IOCTL_DISK_UPDATE_PROPERTIES para que el tamaño de disco actualizado sea visible en el equipo en el que el LUN está desenmascarado.
Los implementadores deben devolver un puntero a la interfaz IVdsAsync de este método, independientemente de si la llamada inicia una operación asincrónica.
Si el parámetro ullNumberOfBytesToAdd es mayor que el número de bytes disponibles en las unidades especificadas en el parámetro pDriveIdArray , use primero las unidades especificadas y, a continuación, seleccione entre las demás unidades disponibles. Si no hay suficientes unidades de este tipo para extender el LUN por el número solicitado de bytes, devuelva un error y no extienda el LUN.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | vdshwprv.h |
Library | Uuid.lib |