IVdsVolume::SetFlags 方法 (vds.h)
[從 Windows 8 和 Windows Server 2012 開始,虛擬磁碟服務 COM 介面會由 Windows 記憶體管理 API 取代。
設定磁碟區旗標。
語法
HRESULT SetFlags(
[in] ULONG ulFlags,
[in] BOOL bRevertOnClose
);
參數
[in] ulFlags
由 VDS_VOLUME_FLAG 列舉的旗標。 呼叫端可以設定下列旗標:
VDS_VF_LBN_REMAP_ENABLED
VDS_VF_HIDDEN
VDS_VF_READONLY
VDS_VF_NO_DEFAULT_DRIVE_LETTER
VDS_VF_INSTALLABLE
VDS_VF_SHADOW_COPY
[in] bRevertOnClose
如果 為TRUE,則會暫時設定旗標。 當呼叫端釋放磁碟區對象的最後一個參考、呼叫 IVdsVolume::ClearFlags 或卸除磁碟區時,VDS 會將每個旗標重設為上一個狀態,但當整個磁碟上設定旗標時, (請參閱一節中的數據表,以取得詳細數據) 。 在整個磁碟上設定旗標時,必須呼叫 IVdsVolume::ClearFlags 方法來重設旗標。
傳回值
這個方法可以傳回標準 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 VDS 特定的傳回值。 它也可以使用 HRESULT_FROM_WIN32 宏傳回已轉換的系統錯誤碼。 錯誤可能來自 VDS 本身,或來自正在使用的基礎 VDS 提供者 。 可能的傳回值包括下列專案。
傳回碼/值 | 描述 |
---|---|
|
旗標已設定。 |
|
提供者不支援 VDS_VF_LBN REMAP_ENABLED 磁碟區旗標。 |
|
提供者不支援 VDS_VF_NO DRIVELETTER 磁碟區旗標。 |
|
如果已設定VDS_VF_HIDDEN或VDS_VF_READONLY磁碟區旗標,bRevertOnClose 應設定為 true。 |
|
某些磁碟區旗標已設定為 true。 您必須先清除這些旗標,然後呼叫此方法,然後將 bRevertOnClose 參數再次設定為 true。 VDS_E_INVALID_OPERATION傳回值也可以指出此條件。 |
備註
VDS_VF_READONLY、VDS_VF_HIDDEN和VDS_VF_NO_DEFAULT_DRIVE_LETTER旗標會根據 MBR 或 GPT) (基本或動態) 和分割 (區樣式 (磁碟類型而有所不同。 範圍是磁碟型或磁碟區型,如下列條件所述:
- 如果磁碟是基本和 MBR,則在磁碟區上設定其中一個旗標會影響目前的磁碟區,以及所有未來在磁碟上建立指定屬性的磁碟區。
- 如果磁碟是基本且 GPT、動態和 MBR 或動態和 GPT,則磁碟區上的其中一個旗標僅適用於該特定磁碟區。
旗標 | MBR 基本磁碟 | GPT 基本磁碟 | MBR 或 GPT 動態磁碟 |
---|---|---|---|
VDS_VF_LBN_REMAP_ENABLED | 無法設定。 | 無法設定。 | 如果第三方磁碟區管理員支援,請在磁碟區上設定 。 |
VDS_VF_HIDDEN | 在整個磁碟上設定。 | 僅) 在磁碟區上設定 (數據分割。 | 在磁碟區上設定。 |
VDS_VF_READONLY | 在整個磁碟上設定。 | 僅) 在磁碟區上設定 (數據分割。 | 在磁碟區上設定。 |
VDS_VF_NO_DEFAULT_DRIVE_LETTER | 在整個磁碟上設定。 | 在分割區上設定。 | 請參閱 VDS_VOLUME_FLAG。 |
VDS_VF_SHADOW_COPY | 在整個磁碟上設定。 | 僅) 在磁碟區上設定 (數據分割。 | 在磁碟區上設定。 |
VDS_VF_INSTALLABLE | 無法設定。 | 無法設定。 | 在磁碟區上設定。 |
如果 bRevertOnClose 為 TRUE ,且磁碟是 MBR 基本磁碟,然後刪除磁碟區,則旗標仍會在整個磁碟上設定,而且旗標會套用至磁碟上建立的任何新磁碟區。 IVdsAdvancedDisk::Clean 接著必須用來清除旗標。
若要在動態磁碟上建立開機磁碟區,您必須為磁碟區設定 VDS_VF_INSTALLABLE 旗標,然後呼叫 IVdsVolumeMF::Format 方法來格式化磁碟區。
如果磁碟區包含下列一或多個旗標,這個方法就會失敗:
- VDS_VF_SYSTEM
- VDS_VF_BOOT
- VDS_VF_PAGEFILE
- VDS_VF_HIBERNATION
- VDS_VF_CRASHDUMP
除非 bRevertOnClose 為 TRUE,否則指定VDS_VF_HIDDEN或VDS_VF_READONLY會強制卸除和重新掛接磁碟區。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | vds.h |
程式庫 | Uuid.lib |