IVdsAdvancedDisk::Clean 方法 (vds.h)

[從Windows 8和Windows Server 2012開始,虛擬磁碟服務COM 介面會由Windows 儲存體管理 API取代。

移除分割區資訊,並取消初始化基本或動態磁碟。

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,請清除包含下表中已知 OEM 磁碟分割的 MBR 型磁片,或清除包含任何 OEM 磁碟分割的 GPT 磁片。 OEM 磁碟分割在 GPT 磁片上設定GPT_ATTRIBUTE_PLATFORM_REQUIRED旗標。

磁碟分割類型 描述
0x12 EISA 分割區。
0x84 膝上型電腦的休眠資料分割。
0xA0 某些 HP 膝上型電腦的診斷資料分割。
0xDE Dell 所定義的分割區。
0xFE IBM IML 磁碟分割。

[in] bFullClean

如果 為 TRUE,請將每個磁區上的資料取代為零,以清除整個磁片;否則,此方法只會清除磁片上的第一個和最後一 MB。

[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 磁碟分割, bForce OEM 為 false。
  • 磁片包含磁片區或 ESP 磁碟分割, bForceFALSE
  • 不論 bForceTRUE 還是 FALSE,磁片都包含其中一個系統磁片區。 系統磁片區可以是下列任何專案:
    • 包含作業系統載入器的磁片區。
    • 包含 system32 目錄的開機磁片區。
    • 包含分頁檔或休眠檔案的磁片區,或作為損毀傾印使用的磁片區。
    • ESP 磁碟分割 (系統開機) 的資料分割。
VDS_S_DISK_PARTIALLY_CLEANED
0x0004241AL
分割區資料表已清除,但並非所有磁區都會在完整清除期間清除。 或者,清除第一個 MB 和最後一個 MB 的一些磁區;不過,除非清除是完整清除,否則不會清除其餘磁區。

備註

呼叫此方法之前,呼叫端應該呼叫 IVdsVolumeMF::D ismount 來卸載磁片上任何掛接的磁片區。

除非您先刪除磁片上所有資料磁片區、已知的 OEM 分割區和 ESP 磁碟分割,否則請使用bForce 參數、bForceOEM參數或兩者搭配此方法。 這項需求會排除中繼資料分割區,例如 MSR、LDM 中繼資料分割和未知的 OEM 磁碟分割。

Windows Server 2003: 卸載式裝置不支援 Clean 方法。

不論呼叫是否起始非同步作業,實作者都必須針對這個方法傳回 IVdsAsync 介面的指標。

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 Windows
標頭 vds.h
程式庫 Uuid.lib

另請參閱

Disk 物件

IVdsAdvancedDisk

IVdsAsync