Метод IVssHardwareSnapshotProvider::GetTargetLuns (vsprov.h)

Метод GetTargetLuns предлагает поставщику оборудования инициализировать структуры VDS_LUN_INFORMATION для вновь созданных теневых копий LUN. Метод GetTargetLuns вызывается после метода IVssProviderCreateSnapshotSet::P ostCommitSnapshots . Идентификация информации для каждого созданного LUN возвращается в VSS с помощью VDS_LUN_INFORMATION структур.

Примечание Поставщики оборудования поддерживаются только в операционных системах Windows Server.
 

Синтаксис

HRESULT GetTargetLuns(
  [in]      LONG                lLunCount,
  [in]      VSS_PWSZ            *rgDeviceNames,
  [in]      VDS_LUN_INFORMATION *rgSourceLuns,
  [in, out] VDS_LUN_INFORMATION *rgDestinationLuns
);

Параметры

[in] lLunCount

Количество LUN, которые влияют на исходный том.

[in] rgDeviceNames

Указатель на массив указателей lLunCount на строки. Каждая строка содержит имя исходного LUN для копирования тенью.

[in] rgSourceLuns

Указатель на массив VDS_LUN_INFORMATION структур lLunCount, по одному для каждого LUN, который влияет на исходный том.

[in, out] rgDestinationLuns

Указатель на массив структур VDS_LUN_INFORMATION lLunCount, по одному для каждой новой теневой копии LUN, созданной во время обработки теневого копирования. Между элементами массивов rgSourceLuns и rgDestinationLuns должно быть соответствие "один к одному".

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

Этот метод может возвращать одно из этих значений.

Возвращаемый код или значение Описание
S_OK
0x00000000L
Операция успешно завершена.
E_OUTOFMEMORY
0x8007000EL
Нехватка памяти или других системных ресурсов.
E_INVALIDARG
0x80070057L
Одно из значений параметра является недопустимым.
VSS_E_PROVIDER_VETO
0x80042306L
Произошла непредвиденная ошибка поставщика. Поставщик должен сообщить о событии в журнале событий приложения, предоставляя пользователю сведения о том, как устранить проблему.

Комментарии

В параметре rgDestinationLuns VSS предоставляет пустую структуру VDS_LUN_INFORMATION для каждого созданного LUN теневой копии. Теневая копия LUN не отображается и не отображается в системе. Поставщик должен инициализировать членов структуры VDS_LUN_INFORMATION соответствующими данными запроса SCSI и жизненно важными данными о продукте, страницами 80 (серийный номер устройства) и страницей 83 (удостоверение устройства). Структура должна содержать правильные значения элементов, чтобы теневая копия LUN была обнаружена Windows с исходного компьютера или любого другого компьютера, подключенного к сети SAN.

Члены структуры VDS_LUN_INFORMATION соответствуют сведениям на странице 80, за следующими исключениями:

  • Элемент m_version должен иметь значение VER_VDS_LUN_INFORMATION.
  • Элемент m_BusType игнорируется при сравнении во время импорта. Это значение зависит от стека хранилища PnP на соответствующем дисковом устройстве. Обычно это VDSBusTypeScsi.
  • Элемент m_diskSignature игнорируется при сравнении во время импорта. Поставщик должен задать для этого элемента значение GUID_NULL.
Элементы структуры VDS_STORAGE_DEVICE_ID_DESCRIPTORm_deviceIdDescriptor элементе структуры VDS_LUN_INFORMATION ) соответствуют сведениям страницы 83. В этой структуре каждая структура VDS_STORAGE_IDENTIFIER соответствует структуре STORAGE_IDENTIFIER для идентификатора устройства (то есть идентификатора хранилища с типом связи ноль). Дополнительные сведения о структуре STORAGE_IDENTIFIER см. в документации по пакету драйверов Windows (WDK).

Структуры VDS_LUN_INFORMATION , возвращаемые здесь, должны совпадать со структурами, предоставленными в методе IVssHardwareSnapshotProvider::FillInLunInfo во время импорта , чтобы VSS мог использовать эти сведения для идентификации вновь поступающих теневых копий LUN при импорте. Эти же структуры будут переданы поставщику в методе IVssHardwareSnapshotProvider::LocateLuns .

Требования

   
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header vsprov.h

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

IVssHardwareSnapshotProvider

VDS_LUN_INFORMATION