Compartir a través de


Método IVdsDrive::QueryExtents (vds.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.]

Devuelve una matriz de las extensiones de una unidad, incluidas las extensiones asignadas y no asignadas.

Sintaxis

HRESULT QueryExtents(
  [out] VDS_DRIVE_EXTENT **ppExtentArray,
  [out] LONG             *plNumberOfExtents
);

Parámetros

[out] ppExtentArray

Puntero a la matriz de VDS_DRIVE_EXTENT estructuras pasadas por el autor de la llamada. Los autores de llamadas deben liberar esta matriz mediante la función CoTaskMemFree .

[out] plNumberOfExtents

Puntero al número de extensiones de unidad devueltas en la estructura VDS_DRIVE_EXTENT .

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
S_OK
La información de extensiones se devolvió correctamente. Para una unidad sin extensiones, la matriz está vacía, el valor de plNumberOfExtents se establece en 0 y el valor de ppExtentArray se establece en NULL.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
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é.
VDS_E_OBJECT_DELETED
0x8004240BL
El objeto drive ya no existe.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
La unidad está en estado de error y no puede realizar la operación solicitada.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Otra operación está en curso; esta operación no puede continuar hasta que se completen las operaciones o operaciones anteriores.
VDS_E_NOT_SUPPORTED
0x80042400L
El subsistema no admite este método.

Comentarios

Una unidad puede contribuir en cualquier número de LUN y estos LUN se pueden desenmascarar en cualquier número de equipos diferentes de la red. Use el método IVdsLunPlex::QueryExtents para ver todas las extensiones de un plex LUN.

El miembro LunId de cada estructura VDS_DRIVE_EXTENT especifica el GUID del LUN al que contribuye cada extensión asignada. Por lo tanto, puede usar el resultado de este método para determinar el número de LUN a los que contribuye la unidad contando el número de valores de LunId distintos devueltos en ppExtentArray.

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 vds.h
Library Uuid.lib

Consulte también

IVdsDrive

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLunPlex::QueryExtents

VDS_DRIVE_EXTENT