次の方法で共有


IVdsCreatePartitionEx::CreatePartitionEx メソッド (vds.h)

[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。

ベーシック ディスクにパーティションを作成します。

このメソッドは、 IVdsAdvancedDisk::CreatePartition メソッドよりも優先されます。

構文

HRESULT CreatePartitionEx(
  [in]  ULONGLONG                   ullOffset,
  [in]  ULONGLONG                   ullSize,
  [in]  ULONG                       ulAlign,
  [in]  CREATE_PARTITION_PARAMETERS *para,
  [out] IVdsAsync                   **ppAsync
);

パラメーター

[in] ullOffset

パーティション オフセット (バイト単位)。 オフセットがアラインされておらず 、ulAlign パラメーターが指定されていない場合、パーティションが作成されるディスクのサイズに応じて、オフセットは最も近いアラインメント境界に切り上げられます。 詳細については、「解説」を参照してください。

Windows Server 2003: 配置できるのは、ベーシック ディスク上の最初のパーティションのみです。ダイナミック ディスクを配置できません。 ベーシック ディスク上の他のパーティションでは、 ulAlign パラメーターを使用して配置を指定することはできません。オフセットは、マスター ブート レコード (MBR) ディスクの最も近いシリンダー境界、または GUID パーティション テーブル (GPT) ディスクの最も近いセクター境界に丸められます。

呼び出し元が ullOffset パラメーターと ulAlign パラメーターの両方を指定する場合、オフセットは最初の円柱内にある必要があります。

[in] ullSize

新しいパーティションのサイズ (バイト単位)。

[in] ulAlign

配置サイズ (バイト単位)。

Windows Server 2003: このパラメーターを指定すると、プロバイダーはパーティション オフセットを最も近い配置境界に切り上げる。それ以外の場合は、最も近い円柱境界に。

ディスクの先頭にパーティション サイズに対応できる十分な領域があり、 ulAlign パラメーターが指定されていても 、ullOffset パラメーターが指定されていない場合、 CreatePartitionEx の呼び出しは失敗します。

[in] para

CREATE_PARTITION_PARAMETERS構造体によって定義されるパラメーターへのポインター。

[out] ppAsync

戻り時に VDS が初期化する IVdsAsync インターフェイス ポインターのアドレス。 呼び出し元はインターフェイスを解放する必要があります。 操作の状態をキャンセル、待機、またはクエリするには、このポインターを使用します。

戻り値

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

リターン コード/値 説明
S_OK
パーティションが正常に作成されました。
VDS_E_NO_MEDIA
0x80042412L
リムーバブル ドライブにはメディアがありません。
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
ディスクが読み取り専用であるため、パーティションを作成できませんでした。
VDS_E_INVALID_OPERATION
0x80042415L
メディアはこの操作をサポートしていません。 たとえば、呼び出し元は CD-ROM にパーティションを作成できません。
VDS_E_NOT_SUPPORTED
0x80042400L
リムーバブル メディアでの 2 つ目のパーティションの作成はサポートされていません。 または、このエラーは、ディスクが動的ディスクであることを示します。
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
呼び出し元が追加のプライマリ パーティションまたは拡張パーティションを作成しようとしたときに、パーティションの最大数 (プライマリ パーティションまたは拡張パーティションを含むプライマリ パーティション) が既に存在します。
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
パーティションは正常に作成されましたが、VDS はブート構成データ (BCD) ストアのブート オプションを更新できませんでした。

Windows Server 2003: ブート オプションは、itanium システムの x86 または x64 システムまたは NVRAM の boot.ini ファイルに格納されます。

注釈

この方法は、GPT または MBR パーティション構成を持つベーシック ディスクで動作します。

Windows Server 2003: 呼び出し元は MBR ディスクの最初のパーティションのみを配置でき、最初のシリンダまたは 2 番目のシリンダの始点の開始位置をシリンダ境界に配置する必要があります。

ullOffset パラメーターを指定し、その値が HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Vds\Alignment レジストリ サブキーの値を使用してまだアラインされていない場合、その値は次の値を使用して自動的に配置されます。ディスクが 4 GB 以上の場合は既定の配置は 1 MB、ディスクが 4 GB より小さい場合は 64 KB です。

Windows Server 2003: アラインされていないパーティション オフセットは、MBR ディスクの最も近いシリンダー境界、または GPT ディスクの最も近いセクター境界に丸められます。

ダイナミック ディスクが読み取り専用でオフラインの場合は、 CreatePartitionEx を呼び出す前に、読み取り/書き込みを行い、次のようにオンラインにする必要があります。

  1. 読み取り専用ビットをクリアします。 (これは 、VDS_DISK_PROP 構造体の VDS_DF_READ_ONLY フラグです。
  2. IVdsDiskOnline::Online メソッドを呼び出します。

要件

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

こちらもご覧ください

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx