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


Метод IVdsVdProvider::CreateVDisk (vds.h)

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

Создает виртуальный диск.

Синтаксис

HRESULT CreateVDisk(
  [in]  PVIRTUAL_STORAGE_TYPE        VirtualDeviceType,
  [in]  LPWSTR                       pPath,
  [in]  LPWSTR                       pStringSecurityDescriptor,
  [in]  CREATE_VIRTUAL_DISK_FLAG     Flags,
  [in]  ULONG                        ProviderSpecificFlags,
  [in]  ULONG                        Reserved,
  [in]  PVDS_CREATE_VDISK_PARAMETERS pCreateDiskParameters,
  [out] IVdsAsync                    **ppAsync
);

Параметры

[in] VirtualDeviceType

Указатель на структуру VIRTUAL_STORAGE_TYPE , указывающую тип создаваемого виртуального диска.

[in] pPath

Строка с расширенными символами с завершением NULL, содержащая имя и путь к каталогу для резервного файла, создаваемого для виртуального диска.

[in] pStringSecurityDescriptor

Строка расширенных символов, заканчивающаяся null, содержащая дескриптор безопасности, применяемый к виртуальному диску. Если этот параметр имеет значение NULL, будет использоваться дескриптор безопасности в маркере доступа вызывающего объекта.

[in] Flags

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

Значение Значение
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
Флаги не указаны.
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
Предварительно выделите все физическое пространство, необходимое для виртуального размера виртуального диска. Этот флаг действителен только для виртуального диска фиксированного размера.

[in] ProviderSpecificFlags

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

[in] Reserved

Параметр зарезервирован и должен быть равен нулю.

[in] pCreateDiskParameters

Указатель на структуру VDS_CREATE_VDISK_PARAMETERS , содержащую параметры создания виртуального диска.

[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
Метод завершился успешно.

Комментарии

Приложения должны инициализировать безопасность на уровне процесса, вызвав функцию 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

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

IVdsVdProvider