Share via


IVdsVdProvider::CreateVDisk メソッド (vds.h)

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

仮想ディスクを作成します。

構文

HRESULT CreateVDisk(
  [in]  PVIRTUAL_STORAGE_TYPE        VirtualDeviceType,
  [in]  LPWSTR                       pPath,
  [in]  LPWSTR                       pStringSecurityDescriptor,
  [in]  CREATE_VIRTUAL_DISK_FLAG     Flags,
  [in]  ULONG                        ProviderSpecificFlags,
  [in]  ULONG                        Reserved,
  [in]  PVDS_CREATE_VDISK_PARAMETERS pCreateDiskParameters,
  [out] IVdsAsync                    **ppAsync
);

パラメーター

[in] VirtualDeviceType

作成する仮想ディスクの種類を指定する VIRTUAL_STORAGE_TYPE 構造体へのポインター。

[in] pPath

仮想ディスク用に作成されるバッキング ファイルの名前とディレクトリ パスを含む NULL で終わるワイド文字列。

[in] pStringSecurityDescriptor

仮想ディスクに適用されるセキュリティ記述子を含む NULL で終わるワイド文字列。 このパラメーターが NULL の場合、呼び出し元のアクセス トークンのセキュリティ記述子が使用されます。

[in] Flags

仮想ディスクの作成方法 指定するCREATE_VIRTUAL_DISK_FLAG列挙値のビットマスク。

意味
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
フラグは指定されません。
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
仮想ディスクの仮想サイズに必要なすべての物理領域を事前に割り当てます。 このフラグは、固定サイズの仮想ディスクに対してのみ有効です。

[in] ProviderSpecificFlags

作成される仮想ディスクの種類に固有のフラグのビットマスク。 これらのフラグはプロバイダー固有です。 Microsoft 仮想ディスク プロバイダーの場合、このパラメーターは 0 である必要があります。

[in] Reserved

パラメーターは予約済みであり、0 である必要があります。

[in] pCreateDiskParameters

仮想ディスク作成パラメーターを含む VDS_CREATE_VDISK_PARAMETERS 構造体へのポインター。

[out] ppAsync

正常に完了すると IVdsAsync インターフェイスを受け取り、この操作を監視および制御する IVdsAsync インターフェイスへのポインター。 呼び出し元は、受信したインターフェイスが完了したら、それを解放する必要があります。 インターフェイスで IVdsAsync::Wait メソッドが呼び出され、成功した HRESULT 値が返された場合、各インターフェイス ポインターで IUnknown::Release メソッドを呼び出して、VDS_ASYNC_OUTPUT構造体で返されるインターフェイスを解放する必要があります。 ただし、Wait がエラー HRESULT 値を返す場合、または WaitpHrResult パラメーターがエラー HRESULT 値を受け取った場合、VDS_ASYNC_OUTPUT構造体内のインターフェイス ポインターは NULL であり、解放する必要はありません。 成功または失敗の HRESULT 値をテストするには、Winerror.h で定義 されている SUCCEEDED マクロと FAILED マクロを使用します。

戻り値

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

リターン コード 説明
S_OK
メソッドは正常に完了しました。

解説

アプリケーションでは、 CoInitializeSecurity 関数を呼び出して、プロセス全体のセキュリティを初期化する必要があります。 dwImpLevel パラメーターは、RPC_C_IMP_LEVEL_IMPERSONATEに設定する必要があります。

Windows Server 2008、Windows Vista、Windows Server 2003: これらのアクションは、Windows 7 および Windows Server 2008 R2 まで必要ありません。

指定したファイル名の仮想ディスクが存在しない場合は、作成されます。 仮想ディスクが既に存在する場合、仮想ディスク プロバイダーは、ファイルを再作成せずに、既存の仮想ディスク オブジェクトへのインターフェイス ポインターを返します。

要件

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

関連項目

IVdsVdProvider