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


Метод 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

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

[in, out] rgDestinationLuns

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

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

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

Возврат кода или значения Description
S_OK
0x000000000L
Операция успешно завершена.
E_OUTOFMEMORY
0x800700EL
Вне памяти или других системных ресурсов.
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_DESCRIPTOR (в элементе m_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 [только классические приложения]
целевая платформа Виндоус
Header vsprov.h

См. также

IVssHardwareSnapshotProvider

VDS_LUN_INFORMATION