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


Метод IVdsCreatePartitionEx::CreatePartitionEx (vds.h)

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

Создает раздел на базовом диске.

Этот метод заменяет метод IVdsAdvancedDisk::CreatePartition .

Синтаксис

HRESULT CreatePartitionEx(
  [in]  ULONGLONG                   ullOffset,
  [in]  ULONGLONG                   ullSize,
  [in]  ULONG                       ulAlign,
  [in]  CREATE_PARTITION_PARAMETERS *para,
  [out] IVdsAsync                   **ppAsync
);

Параметры

[in] ullOffset

Смещение секции в байтах. Если смещение не выровнено и параметр ulAlign не указан, смещение округляется вверх или вниз до ближайшей границы выравнивания в зависимости от размера диска, на котором создается секция. Дополнительные сведения см. в разделе "Примечания".

Windows Server 2003: Можно выровнять только первый раздел на базовом диске; Невозможно выровнять динамические диски. Для других секций на базовом диске невозможно указать выравнивание с помощью параметра ulAlign ; смещение округляется до ближайшей границы цилиндра для дисков основной загрузочной записи (MBR) или до ближайшей границы сектора для дисков таблицы разделов GUID (GPT).

Если вызывающий объект задает параметры ullOffset и ulAlign , смещение должно находиться в пределах первого цилиндра.

[in] ullSize

Размер (в байтах) новой секции.

[in] ulAlign

Размер выравнивания в байтах.

Windows Server 2003: Если указан этот параметр, поставщик округляет смещение секции до ближайшей границы выравнивания; в противном случае — до ближайшей границы цилиндра.

Если в начале диска достаточно места для размещения размера секции и указан параметр ulAlign , а параметр ullOffset — нет, вызов CreatePartitionEx завершается ошибкой.

[in] para

Указатель на параметры, определенные структурой CREATE_PARTITION_PARAMETERS .

[out] ppAsync

Адрес указателя интерфейса IVdsAsync , который VDS инициализирует при возврате. Вызывающие элементы должны освободить интерфейс. Используйте этот указатель для отмены, ожидания или запроса состояния операции.

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

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

Возвращаемый код или значение Описание
S_OK
Раздел успешно создан.
VDS_E_NO_MEDIA
0x80042412L
На съемном диске нет носителя.
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
Не удалось создать раздел, так как диск доступен только для чтения.
VDS_E_INVALID_OPERATION
0x80042415L
Носитель не поддерживает эту операцию. Например, вызывающий объект не может создать раздел на компакт-диске.
VDS_E_NOT_SUPPORTED
0x80042400L
Создание второй секции на съемном носителе не поддерживается. Кроме того, эта ошибка указывает, что диск является динамическим.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
Максимальное число секций (первичных секций или первичных секций с расширенной секцией) уже существует, когда вызывающий объект пытается создать дополнительную основную или расширенную секцию.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
Раздел был успешно создан, но VDS не удалось обновить параметры загрузки в хранилище данных конфигурации загрузки (BCD).

Windows Server 2003: Параметры загрузки хранятся в файле boot.ini в системе x86 или x64 или NVRAM в системе Itanium.

Комментарии

Этот метод работает на базовых дисках со схемой секционирования GPT или MBR.

Windows Server 2003: Вызывающие компоненты могут выравнивать только первую секцию диска MBR и должны размещать начальное смещение в первом или начале второго цилиндра на границе цилиндра.

Если указан параметр ullOffset и его значение еще не выровнено с помощью значений в подразделе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Vds\Alignment , его значение будет выравниваться автоматически с использованием следующих значений: Выравнивание по умолчанию равно 1 МБ, если диск равен 4 ГБ или больше, или 64 КБ, если диск меньше 4 ГБ.

Windows Server 2003: Смещения секций без выравнивания округляются до ближайшей границы цилиндров для дисков MBR или до ближайшей границы сектора для дисков GPT.

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

  1. Очистите бит только для чтения. (Это флаг VDS_DF_READ_ONLY в структуре VDS_DISK_PROP .)
  2. Вызовите метод IVdsDiskOnline::Online .

Требования

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

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

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx