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


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

Метод FillInLunInfo предлагает поставщику оборудования указать, поддерживает ли он соответствующее дисковое устройство, и исправить все упущения в структуре VDS_LUN_INFORMATION . VSS вызывает метод FillInLunInfo после метода IVssHardwareSnapshotProvider::LocateLuns или перед методом IVssHardwareSnapshotProvider::OnLunEmpty , чтобы получить VDS_LUN_INFORMATION структуру, связанную с теневой копией LUN. VSS сравнит VDS_LUN_INFORMATION структуру, полученную в методе IVssHardwareSnapshotProvider::GetTargetLuns , чтобы определить LUN теневой копии. Если структуры не совпадают, инициатор запроса получит VSS_S_SOME_SNAPSHOTS_NOT_IMPORTED, что указывает на несоответствие.

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

Синтаксис

HRESULT FillInLunInfo(
  [in]      VSS_PWSZ            wszDeviceName,
  [in, out] VDS_LUN_INFORMATION *pLunInfo,
  [out]     BOOL                *pbIsSupported
);

Параметры

[in] wszDeviceName

Устройство, соответствующее теневой копии LUN.

[in, out] pLunInfo

Структура VDS_LUN_INFORMATION для теневой копии LUN.

[out] pbIsSupported

Поставщик должен вернуть значение TRUE в расположении, на которое указывает параметр pbIsSupported , если устройство поддерживается.

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

VSS игнорирует возвращаемое значение этого метода.

Windows Server 2003: VSS не игнорирует возвращаемое значение, которое может быть одним из следующих значений.

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

Комментарии

VSS вызывает метод FillInLunInfo для каждой структуры VDS_LUN_INFORMATION , которую поставщик ранее инициализировал в своем методе GetTargetLuns . VSS также вызывает метод FillInLunInfo для каждого нового дискового устройства, которое поступает в систему во время импорта.

Поставщик может исправить любые упущения в VDS_LUN_INFORMATION структуре, полученной в параметре pLunInfo . Однако поставщик не должен изменять значение m_rgInterconnects члена этой структуры.

Элементы структуры VDS_LUN_INFORMATION соответствуют данным запроса SCSI и странице 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).

Если метод FillInLunInfo вызывается для LUN, неизвестного поставщику, поставщик не должен возвращать ошибку. Вместо этого он должен возвращать значение FALSE в значении BOOL , на которое указывает параметр pbIsSupported , и возвращать успешное выполнение. Если поставщик распознает LUN, ему следует задать значение BOOL в значение TRUE.

Требования

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

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

AreLunsSupported

GetTargetLuns

IVssHardwareSnapshotProvider

LocateLuns

OnLunEmpty

VDS_LUN_INFORMATION

VDS_STORAGE_IDENTIFIER