Win32 API 日本語リファレンス
ホームStorage.VirtualDiskService › IVdsAdvancedDisk

IVdsAdvancedDisk

COM
IID6e6f6b40-977c-4069-bddd-ac710059f8c0継承元IUnknown自前メソッド開始 vtbl3

メソッド 10

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetPartitionProperties(ULONGLONG ullOffset, VDS_PARTITION_PROP* pPartitionProp)
ullOffsetULONGLONGin対象パーティションのディスク先頭からのバイトオフセットを指定する。
pPartitionPropVDS_PARTITION_PROP*outパーティションのプロパティを受け取る VDS_PARTITION_PROP へのポインタである。
vtbl 4 HRESULT QueryPartitions(VDS_PARTITION_PROP** ppPartitionPropArray, INT* plNumberOfPartitions)
ppPartitionPropArrayVDS_PARTITION_PROP**outディスク上の全パーティションのプロパティを記述する VDS_PARTITION_PROP 配列を受け取るポインタである。呼び出し側が解放する。
plNumberOfPartitionsINT*out返されるパーティションの個数を受け取るポインタである。
vtbl 5 HRESULT CreatePartition(ULONGLONG ullOffset, ULONGLONG ullSize, CREATE_PARTITION_PARAMETERS* para, IVdsAsync** ppAsync)
ullOffsetULONGLONGinパーティションを作成する位置のバイトオフセットを指定する。
ullSizeULONGLONGin作成するパーティションのサイズをバイト単位で指定する。
paraCREATE_PARTITION_PARAMETERS*inパーティション作成に使用するパラメータを指定する CREATE_PARTITION_PARAMETERS へのポインタである。
ppAsyncIVdsAsync**outパーティション作成操作の進捗を追跡する IVdsAsync を受け取るポインタである。
vtbl 6 HRESULT DeletePartition(ULONGLONG ullOffset, BOOL bForce, BOOL bForceProtected)
ullOffsetULONGLONGin削除対象パーティションのバイトオフセットを指定する。
bForceBOOLin削除を強制するかどうかを指定する真偽値である。
bForceProtectedBOOLin保護されたパーティションの削除を強制するかどうかを指定する真偽値である。
vtbl 7 HRESULT ChangeAttributes(ULONGLONG ullOffset, CHANGE_ATTRIBUTES_PARAMETERS* para)
ullOffsetULONGLONGin属性を変更する対象パーティションのバイトオフセットを指定する。
paraCHANGE_ATTRIBUTES_PARAMETERS*in変更するパーティション属性を指定する CHANGE_ATTRIBUTES_PARAMETERS へのポインタである。
vtbl 8 HRESULT AssignDriveLetter(ULONGLONG ullOffset, WCHAR wcLetter)
ullOffsetULONGLONGinドライブ文字を割り当てる対象パーティションのバイトオフセットを指定する。
wcLetterWCHARin割り当てるドライブ文字を指定する。
vtbl 9 HRESULT DeleteDriveLetter(ULONGLONG ullOffset, WCHAR wcLetter)
ullOffsetULONGLONGinドライブ文字を削除する対象パーティションのバイトオフセットを指定する。
wcLetterWCHARin削除するドライブ文字を指定する。
vtbl 10 HRESULT GetDriveLetter(ULONGLONG ullOffset, LPWSTR pwcLetter)
ullOffsetULONGLONGinドライブ文字を取得する対象パーティションのバイトオフセットを指定する。
pwcLetterLPWSTRout対象パーティションに割り当てられているドライブ文字を受け取るポインタである。
vtbl 11 HRESULT FormatPartition(ULONGLONG ullOffset, VDS_FILE_SYSTEM_TYPE type, LPWSTR pwszLabel, DWORD dwUnitAllocationSize, BOOL bForce, BOOL bQuickFormat, BOOL bEnableCompression, IVdsAsync** ppAsync)
ullOffsetULONGLONGinフォーマット対象パーティションのバイトオフセットを指定する。
typeVDS_FILE_SYSTEM_TYPEinフォーマットに使用するファイルシステムを示す VDS_FILE_SYSTEM_TYPE 値である。
pwszLabelLPWSTRinパーティションに設定するボリュームラベルを指定する文字列である。
dwUnitAllocationSizeDWORDinファイルシステムのアロケーションユニットサイズをバイト単位で指定する。
bForceBOOLinフォーマットを強制するかどうかを指定する真偽値である。
bQuickFormatBOOLinクイックフォーマットを行うかどうかを指定する真偽値である。
bEnableCompressionBOOLinファイルシステムの圧縮を有効にするかどうかを指定する真偽値である。
ppAsyncIVdsAsync**outフォーマット操作の進捗を追跡する IVdsAsync を受け取るポインタである。
vtbl 12 HRESULT Clean(BOOL bForce, BOOL bForceOEM, BOOL bFullClean, IVdsAsync** ppAsync)
bForceBOOLinクリーン操作を強制するかどうかを指定する真偽値である。
bForceOEMBOOLinOEM パーティション等の保護パーティションも対象とするかどうかを指定する真偽値である。
bFullCleanBOOLinディスク全体をゼロ消去する完全クリーンを行うかどうかを指定する真偽値である。
ppAsyncIVdsAsync**outクリーン操作の進捗を追跡する IVdsAsync を受け取るポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IVdsAdvancedDisk "{6E6F6B40-977C-4069-BDDD-AC710059F8C0}"
#usecom global IVdsAdvancedDisk IID_IVdsAdvancedDisk "{}"
#comfunc global IVdsAdvancedDisk_GetPartitionProperties  3 int64,var
#comfunc global IVdsAdvancedDisk_QueryPartitions         4 var,var
#comfunc global IVdsAdvancedDisk_CreatePartition         5 int64,int64,var,sptr
#comfunc global IVdsAdvancedDisk_DeletePartition         6 int64,int,int
#comfunc global IVdsAdvancedDisk_ChangeAttributes        7 int64,var
#comfunc global IVdsAdvancedDisk_AssignDriveLetter       8 int64,int
#comfunc global IVdsAdvancedDisk_DeleteDriveLetter       9 int64,int
#comfunc global IVdsAdvancedDisk_GetDriveLetter          10 int64,var
#comfunc global IVdsAdvancedDisk_FormatPartition         11 int64,int,wstr,int,int,int,int,sptr
#comfunc global IVdsAdvancedDisk_Clean                   12 int,int,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。