次の方法で共有


IVdsVolume::SetFlags メソッド (vds.h)

[Windows 8とWindows Server 2012以降、Virtual Disk Service COM インターフェイスは Windows Storage Management 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 の場合、フラグは一時的に設定されます。 VDS は、呼び出し元がボリューム オブジェクトへの最後の参照を解放するとき、 IVdsVolume::ClearFlags を呼び出すとき、またはボリュームのマウントを解除するときに、各フラグを以前の状態にリセットします(詳細については、「備考」セクションの表を参照してください)。 フラグがディスク全体に設定されている場合、フラグをリセットするには 、IVdsVolume::ClearFlags メソッドを呼び出す必要があります。

戻り値

このメソッドは、E_INVALIDARGやE_OUTOFMEMORYなどの標準の HRESULT 値と、VDS 固有の戻り値を返すことができます。 また、HRESULT_FROM_WIN32 マクロを使用して、変換されたシステム エラー コードを返すこともできます。 エラーは、VDS 自体または使用されている基になる VDS プロバイダー から発生する可能性があります。 可能な戻り値は次のとおりです。

リターン コード/値 説明
S_OK
フラグが設定されています。
VDS_E_LBN_REMAP_ENABLED_FLAG
0x80042456L
プロバイダーは 、VDS_VF_LBN REMAP_ENABLED ボリューム フラグをサポートしていません。
VDS_E_NO_DRIVELETTER_FLAG
0x80042457L
プロバイダーは、 VDS_VF_NO DRIVELETTER ボリューム フラグをサポートしていません。
VDS_E_REVERT_ON_CLOSE
0x80042458L
bRevertOnClose は、VDS_VF_HIDDENまたはVDS_VF_READONLYボリューム フラグが設定されている場合にのみ true に設定する必要があります。
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
一部のボリューム フラグは既に true に設定されています。 最初にこれらのフラグをクリアしてから、このメソッドを呼び出し、 bRevertOnClose パラメーターをもう一度 true に設定する必要があります。 VDS_E_INVALID_OPERATION戻り値は、この条件を示すこともできます。

注釈

VDS_VF_READONLYVDS_VF_HIDDENおよびVDS_VF_NO_DEFAULT_DRIVE_LETTERフラグのスコープは、ディスクの種類 (基本または動的) とパーティション スタイル (MBR または GPT) によって異なります。 スコープは、次の条件で説明されているように、ディスクベースまたはボリュームベースです。

  • ディスクが basic と MBR の場合、ボリュームにこれらのフラグのいずれかを設定すると、現在のボリュームと、ディスク上に作成された指定された属性を持つ将来のすべてのボリュームに影響します。
  • ディスクが Basic と GPT、dynamic と MBR、または dynamic と GPT の場合、ボリューム上のフラグの 1 つを設定すると、その特定のボリュームにのみ適用されます。
次の表は、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 設定することはできません。 設定することはできません。 ボリュームに設定します。
 

bRevertOnCloseTRUE で、ディスクが MBR ベーシック ディスクで、そのボリュームが削除された場合でも、そのフラグはディスク全体に設定され、そのフラグはディスク上に作成された新しいボリュームに適用されます。 IVdsAdvancedDisk::Clean を使用してフラグをクリアする必要があります。

ダイナミック ディスクにブート ボリュームを作成するには、ボリュームの VDS_VF_INSTALLABLE フラグを設定し、 IVdsVolumeMF::Format メソッドを呼び出してボリュームをフォーマットする必要があります。

ボリュームに次のフラグが 1 つ以上含まれている場合、このメソッドは失敗します。

  • VDS_VF_SYSTEM
  • VDS_VF_BOOT
  • VDS_VF_PAGEFILE
  • VDS_VF_HIBERNATION
  • VDS_VF_CRASHDUMP

VDS_VF_HIDDENまたはVDS_VF_READONLYを指定すると、bRevertOnCloseTRUE でない限り、ボリュームのマウント解除と再マウントが強制されます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー vds.h
Library Uuid.lib

こちらもご覧ください

IVdsAdvancedDisk::Clean

IVdsVolume

IVdsVolume::ClearFlags

VDS_VOLUME_FLAG