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


Метод IVdsAdvancedDisk::Clean (vds.h)

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

Удаляет сведения о секции и не инициализирует базовые или динамические диски.

Windows Server 2003: Метод Clean не поддерживается для съемных устройств.

Синтаксис

HRESULT Clean(
  [in]  BOOL      bForce,
  [in]  BOOL      bForceOEM,
  [in]  BOOL      bFullClean,
  [out] IVdsAsync **ppAsync
);

Параметры

[in] bForce

При значении TRUE очищает диск, содержащий тома данных или разделы ESP.

[in] bForceOEM

Если задано значение TRUE, очищается диск на основе MBR, содержащий известные разделы OEM в следующей таблице, или диск на основе GPT, содержащий любой раздел OEM. Раздел OEM имеет флаг GPT_ATTRIBUTE_PLATFORM_REQUIRED, установленный на диске на основе GPT.

Тип раздела Описание
0x12 Раздел EISA.
0x84 Раздел гибернации для ноутбуков.
0xA0 Раздел диагностики для некоторых ноутбуков HP.
0xDE Секция, определенная Dell.
0xFE Раздел IBM IML.

[in] bFullClean

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

[out] ppAsync

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

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

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

Возвращаемый код или значение Описание
S_OK
Данные были успешно удалены, а диск не инициализирован.
VDS_E_NO_MEDIA
0x80042412L
На съемном устройстве нет носителя.
VDS_E_MISSING_DISK
0x80042454L
Отсутствует диск.
VDS_E_OPERATION_DENIED
0x8004240AL
Операция завершилась сбоем при одном из следующих условий:
  • Диск содержит раздел OEM, а параметр bForceOEM имеет значение false.
  • Диск содержит раздел тома или ESP, а параметр bForce имеет значение FALSE.
  • Диск содержит один из системных томов независимо от того, имеет ли bForce значение TRUE или FALSE. Системный том может быть любым из следующих элементов:
    • Том, содержащий загрузчик операционной системы.
    • Загрузочный том, содержащий каталог system32.
    • Том, содержащий файл подкачки или файл гибернации, или том, используемый в качестве аварийного дампа.
    • Раздел ESP (раздел, из которого загружается система).
VDS_S_DISK_PARTIALLY_CLEANED
0x0004241AL
Таблица секций очищается, но не все секторы очищаются во время полной очистки. Кроме того, очищаются некоторые секторы первого и последнего мегабайта; однако, если чистый не является полностью чистым, остальные секторы не очищаются.

Комментарии

Перед вызовом этого метода вызывающий объект должен отключить все подключенные тома на диске, вызвав IVdsVolumeMF::D ismount для каждого тома.

Используйте параметр bForce , параметр bForceOEM или оба параметра с этим методом, если только вы не удалите все тома данных, известные разделы OEM и разделы ESP на диске. Это требование исключает секции метаданных, такие как MSR, раздел метаданных LDM и неизвестные разделы OEM.

Windows Server 2003: Метод Clean не поддерживается для съемных устройств.

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

Требования

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

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

Объект Disk

IVdsAdvancedDisk

IVdsAsync