Метод IVdsOpenVDisk::Attach (vds.h)

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

Подключает виртуальный диск.

Синтаксис

HRESULT Attach(
  [in]  LPWSTR                   pStringSecurityDescriptor,
  [in]  ATTACH_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                    ProviderSpecificFlags,
  [in]  ULONG                    TimeoutInMs,
  [out] IVdsAsync                **ppAsync
);

Параметры

[in] pStringSecurityDescriptor

Строка, содержащая дескриптор безопасности для виртуального диска. Если он не указан, используемый дескриптор безопасности: "D:P(A;; GA;;; WD)" в Windows 7 и "D:P(A;; GA;;; WD)(A;; GA;;; AC)" на Windows 8.1 и более поздних версиях.

[in] Flags

Битовая маска ATTACH_VIRTUAL_DISK_FLAG значений перечисления, указывающих способ подключения виртуального диска. Ниже приведены возможные значения.

Значение Значение
ATTACH_VIRTUAL_DISK_FLAG_NONE
0x00000000
Флаги не указаны.
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY
0x00000001
Подключите виртуальный диск только для чтения.
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER
0x00000002
Подключите все тома на подключенном виртуальном диске, не назначая им буквы диска.
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME
0x00000004
Служба VDS автоматически устанавливает этот флаг, чтобы виртуальный жесткий диск оставался подключенным до вызова метода IVdsOpenVDisk::D etach для его отключения.
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST
0x00000008
Зарезервировано. Не используется.

[in] ProviderSpecificFlags

Битовая маска флагов, относящихся к типу подключаемого виртуального диска. Эти флаги зависят от поставщика. Для поставщика виртуальных дисков Майкрософт этот параметр должен быть равен нулю.

[in] TimeoutInMs

Этот параметр зарезервирован для использования в будущем.

[out] ppAsync

Указатель на интерфейс IVdsAsync , который после успешного завершения получает интерфейс IVdsAsync для мониторинга и управления этой операцией. Вызывающие стороны должны освободить полученный интерфейс после завершения работы с ним. Если метод IVdsAsync::Wait вызывается в интерфейсе и возвращается успешное значение HRESULT, интерфейсы, возвращаемые в структуре VDS_ASYNC_OUTPUT , должны быть освобождены путем вызова метода IUnknown::Release для каждого указателя интерфейса. Однако если функция Wait возвращает значение HRESULT сбоя или параметр pHrResultобъекта Wait получает значение HRESULT сбоя, указатели интерфейса в структуре VDS_ASYNC_OUTPUT имеют значение NULL и не должны освобождаться. Вы можете проверить наличие значений HRESULT успешного или неудачного выполнения с помощью макросов SUCCEEDED и FAILED , определенных в Winerror.h.

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

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

Код возврата Описание
S_OK
Метод завершился успешно.

Комментарии

При подключении виртуального диска вызывающий объект может получать одно или все из следующих уведомлений:

  • Если вызывающий объект зарегистрирован для уведомлений VDS, вызывающий объект получает уведомление о прибытии диска. Дополнительные сведения см. в разделе Уведомления VDS.
  • Если вызывающий объект зарегистрирован для уведомлений PnP, вызывающий объект получает уведомление о прибытии диска PnP. Дополнительные сведения см. в разделе RegisterDeviceNotification.
Приложения должны инициализировать безопасность на уровне процесса, вызвав функцию CoInitializeSecurity . Параметр dwImpLevel должен иметь значение RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista и Windows Server 2003: Эти действия не требуются до Windows 7 и Windows Server 2008 R2.

Требования

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

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

IVdsOpenVDisk