Compartir a través de


Método IVdsSubSystem::QueryLuns (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.]

Devuelve una enumeración de LUN expuestas en el subsistema. Este método solo se aplica a objetos de proveedor de hardware.

Sintaxis

HRESULT QueryLuns(
  [out] IEnumVdsObject **ppEnum
);

Parámetros

[out] ppEnum

Dirección de un puntero de interfaz IEnumVdsObject que se puede usar para enumerar los LUN como objetos LUN. Para obtener más información, vea Trabajar con objetos de enumeración. Los autores de llamadas deben liberar la interfaz y cada uno de los objetos LUN cuando ya no sean necesarios llamando al método IUnknown::Release .

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
Devuelve la enumeración de LUN en el subsistema. Si el subsistema no tiene LUN, la enumeración está vacía.
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 del subsistema ya no está presente.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
El subsistema 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.

Comentarios

La interfaz IEnumVdsObject incluye todos los LUN del subsistema, independientemente del enmascaramiento de LUN.

Los implementadores deben devolver un objeto de enumeración vacío para cada subsistema con cero LUN.

Si se llama a este método en dos subprocesos independientes que se ejecutan simultáneamente, los resultados pueden ser incoherentes. Si se llama en un subproceso mientras se llama a un método como IVdsLun::D elete en otro subproceso que se ejecuta simultáneamente, el resultado podría ser una infracción de acceso del proveedor. El proveedor de hardware es responsable de serializar esta operación de consulta según sea necesario para minimizar estos problemas de sincronización.

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

Consulte también

IEnumVdsObject

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsSubSystem