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


Метод IVdsDiskPartitionMF::FormatPartitionEx (vds.h)

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

Форматирует существующий раздел OEM, ESP или неизвестный раздел.

Синтаксис

HRESULT FormatPartitionEx(
  [in]  ULONGLONG ullOffset,
  [in]  LPWSTR    pwszFileSystemTypeName,
  [in]  USHORT    usFileSystemRevision,
  [in]  ULONG     ulDesiredUnitAllocationSize,
  [in]  LPWSTR    pwszLabel,
  [in]  BOOL      bForce,
  [in]  BOOL      bQuickFormat,
  [in]  BOOL      bEnableCompression,
  [out] IVdsAsync **ppAsync
);

Параметры

[in] ullOffset

Байтовая смещение секции от начала диска. Это смещение должно быть смещением начала секции.

[in] pwszFileSystemTypeName

Строка Юникода с завершением NULL, содержащая имя файловой системы, с помощью которой нужно отформатировать секцию. Должно иметь значение NULL или одно из следующих значений: "NTFS", "FAT", "FAT32", "UDF" или "EXFAT". Если этот параметр имеет значение NULL, используется значение по умолчанию.

[in] usFileSystemRevision

Редакция файловой системы, если она есть. Этот элемент выражается в виде 16-разрядного двоичного десятичного числа, где между второй и третьей цифрами подразумевается десятичная запятая. Например, значение 0x0250 указывает на редакцию 2.50.

[in] ulDesiredUnitAllocationSize

Размер единицы выделения для файловой системы в байтах. Значение должно иметь значение 2. Если значение равно 0, будет использоваться единица выделения по умолчанию, определяемая типом файловой системы. Диапазон единиц распределения зависит от файловой системы.

[in] pwszLabel

Строка Юникода, завершающаяся null, которая назначается новой файловой системе для тома. Максимальный размер метки зависит от файловой системы.

[in] bForce

Логическое значение, определяющее, является ли формат файловой системы принудительным, независимо от того, используется ли секция.

[in] bQuickFormat

Логическое значение, определяющее, является ли том файловой системы быстро отформатированным. Быстрый формат не проверяет каждый сектор тома.

[in] bEnableCompression

Логическое значение, определяющее, будет ли создана файловая система с включенным сжатием.

Примечание Этот параметр игнорируется, если файловая система не является NTFS.
 

[out] ppAsync

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

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

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

Возвращаемый код или значение Описание
S_OK
Том успешно секционирован.
VDS_E_BAD_PROVIDER_DATA
0x80042441L
Поставщик вернул недопустимые данные.
VDS_E_DISK_REMOVEABLE
0x8004255AL
Операция не поддерживается на съемных носителях.
VDS_E_FS_NOT_DETERMINED
0x80042593L
Не удалось определить файловую систему по умолчанию.
VDS_E_MISSING_DISK
0x80042454L
Отсутствует диск.
VDS_E_OBJECT_NOT_FOUND
0x80042405L
Секция не существует.
VDS_E_PARTITION_NOT_OEM
0x8004256FL
Операция не поддерживается в секциях, не относящихся к OEM.
 

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

Возвращаемый код или значение Описание
VDS_S_VOLUME_COMPRESS_FAILED
0x00042443L
Файловая система форматирована, но не сжимается.
VDS_E_ACCESS_DENIED
0x80042427L
Отказано в доступе".
VDS_E_BAD_LABEL
0x80042429L
Метка недопустимая.
VDS_E_CANT_QUICK_FORMAT
0x8004242AL
Том не может быть быстро отформатирован.
VDS_E_CLUSTER_COUNT_BEYOND_32BITS
0x80042430L
Количество кластеров слишком велико для представления в виде 32-разрядного целого числа.
VDS_E_CLUSTER_SIZE_TOO_BIG
0x8004242FL
Размер кластера слишком велик, чтобы разрешить форматирование.
VDS_E_CLUSTER_SIZE_TOO_SMALL
0x8004242EL
Размер кластера слишком мал, чтобы разрешить форматирование.
VDS_E_INCOMPATIBLE_FILE_SYSTEM
0x80042425L
Файловая система несовместима.
VDS_E_INCOMPATIBLE_MEDIA
0x80042426L
Носитель несовместим.
VDS_E_IO_ERROR
0x8004242BL
Во время форматирования произошла ошибка ввода-вывода.
VDS_E_MEDIA_WRITE_PROTECTED
0x80042428L
Носитель защищен от записи.
VDS_E_VOLUME_TOO_BIG
0x8004242DL
Размер тома слишком велик для форматирования.
VDS_E_VOLUME_TOO_SMALL
0x8004242CL
Размер тома слишком мал для форматирования.

Комментарии

Этот метод форматирует только OEM, ESP и неизвестные секции. Для других секций вместо этого необходимо отформатировать соответствующий том с помощью метода IVdsVolumeMF::Format или IVdsVolumeMF2::FormatEx . Обратите внимание, что oem, ESP и неизвестные секции не предоставляются в виде томов и поэтому не могут быть отформатированы с помощью Format или FormatEx.

Этот метод нельзя использовать для форматирования съемных носителей.

Если раздел OEM имеет формат FAT или FAT32, тип секции не изменяется. Если он отформатирован с помощью NTFS, тип секции изменится на PARTITION_IFS (0x07). Сведения о типах секций см. в разделе CREATE_PARTITION_PARAMETERS.

Дополнительные сведения об ограничениях файловой системы, таких как минимальный и максимальный размер единицы распределения (также называемый размером кластера), см. в разделах NtfS Technical Reference и FAT Technical Reference.

Требования

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

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

IVdsAdvancedDisk::FormatPartition

IVdsDiskPartitionMF