Поделиться через


Метод IVdsSubSystem::QueryLuns (vds.h)

[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]

Возвращает перечисление LUN, которые отображаются в подсистеме. Этот метод применяется только к объектам поставщика оборудования.

Синтаксис

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

Параметры

[out] ppEnum

Адрес указателя интерфейса IEnumVdsObject , который можно использовать для перечисления LUN в качестве объектов LUN. Дополнительные сведения см. в разделе Работа с объектами перечисления. Вызывающие объекты должны освободить интерфейс и каждый из объектов LUN, если они больше не нужны путем вызова метода IUnknown::Release .

Возвращаемое значение

Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать коды преобразованных системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.

Возвращаемый код/значение Описание
S_OK
Возвращает перечисление LUN в подсистеме. Если подсистема не содержит LUN, перечисление будет пустым.
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
Это возвращаемое значение сигнализирует о проблеме программного обеспечения или связи внутри поставщика, который кэширует сведения о массиве. Для восстановления кэша используйте метод IVdsHwProvider::Reenumerate , за которым следует метод IVdsHwProvider::Refresh .
VDS_E_OBJECT_DELETED
0x8004240BL
Объект подсистемы больше не присутствует.
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
Подсистема находится в состоянии сбоя и не может выполнить запрошенную операцию.
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
Выполняется другая операция; Эта операция не может продолжаться до завершения предыдущей операции или операций.

Комментарии

Интерфейс IEnumVdsObject включает все LUN в подсистеме, независимо от маскирования LUN.

Реализующие объекты должны возвращать пустой объект перечисления для каждой подсистемы с нулевым числом LUN.

Если этот метод вызывается в двух отдельных потоках, которые выполняются одновременно, результаты могут быть несогласованными. Если он вызывается в одном потоке, а метод, такой как IVdsLun::D elete , вызывается в другом потоке, который выполняется одновременно, это может привести к нарушению доступа поставщика. Поставщик оборудования отвечает за сериализацию этой операции запроса по мере необходимости, чтобы свести к минимуму такие проблемы синхронизации.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header vds.h
Библиотека Uuid.lib

См. также раздел

IEnumVdsObject

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsSubSystem