Win32 API 日本語リファレンス
ホームMedia.DeviceManager › IMDSPStorageGlobals

IMDSPStorageGlobals

COM
IID1dcb3a17-33ed-11d3-8470-00c04f79dbc0継承元IUnknown自前メソッド開始 vtbl3

メソッド 9

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

vtbl 3 HRESULT GetCapabilities(DWORD* pdwCapabilities)
pdwCapabilitiesDWORD*outストレージ媒体が対応する機能を示す能力フラグを受け取る出力。
vtbl 4 HRESULT GetSerialNumber(WMDMID* pSerialNum, BYTE* abMac)
pSerialNumWMDMID*out媒体のシリアル番号を受け取るWMDMID構造体の出力。
abMacBYTE*inout改ざん検証用のMACを受け取るバイト配列。
vtbl 5 HRESULT GetTotalSize(DWORD* pdwTotalSizeLow, DWORD* pdwTotalSizeHigh)
pdwTotalSizeLowDWORD*out総容量の下位32ビットを受け取る出力。
pdwTotalSizeHighDWORD*out総容量の上位32ビットを受け取る出力。
vtbl 6 HRESULT GetTotalFree(DWORD* pdwFreeLow, DWORD* pdwFreeHigh)
pdwFreeLowDWORD*out空き容量の下位32ビットを受け取る出力。
pdwFreeHighDWORD*out空き容量の上位32ビットを受け取る出力。
vtbl 7 HRESULT GetTotalBad(DWORD* pdwBadLow, DWORD* pdwBadHigh)
pdwBadLowDWORD*out不良領域サイズの下位32ビットを受け取る出力。
pdwBadHighDWORD*out不良領域サイズの上位32ビットを受け取る出力。
vtbl 8 HRESULT GetStatus(DWORD* pdwStatus)
pdwStatusDWORD*out媒体の現在状態を示すフラグを受け取る出力。
vtbl 9 HRESULT Initialize(DWORD fuMode, IWMDMProgress* pProgress)
fuModeDWORDin初期化(フォーマット等)モードを示すフラグ。実行する初期化処理を指定する。
pProgressIWMDMProgress*inoptional進捗通知を受け取るIWMDMProgressコールバック。NULL可。
vtbl 10 HRESULT GetDevice(IMDSPDevice** ppDevice)
ppDeviceIMDSPDevice**outこの媒体を保持するIMDSPDeviceを受け取る出力。
vtbl 11 HRESULT GetRootStorage(IMDSPStorage** ppRoot)
ppRootIMDSPStorage**out媒体のルートストレージを受け取る出力。

HSP用 COM定義

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

出力引数:
#define global IID_IMDSPStorageGlobals "{1DCB3A17-33ED-11D3-8470-00C04F79DBC0}"
#usecom global IMDSPStorageGlobals IID_IMDSPStorageGlobals "{}"
#comfunc global IMDSPStorageGlobals_GetCapabilities  3 var
#comfunc global IMDSPStorageGlobals_GetSerialNumber  4 var,var
#comfunc global IMDSPStorageGlobals_GetTotalSize     5 var,var
#comfunc global IMDSPStorageGlobals_GetTotalFree     6 var,var
#comfunc global IMDSPStorageGlobals_GetTotalBad      7 var,var
#comfunc global IMDSPStorageGlobals_GetStatus        8 var
#comfunc global IMDSPStorageGlobals_Initialize       9 int,sptr
#comfunc global IMDSPStorageGlobals_GetDevice        10 sptr
#comfunc global IMDSPStorageGlobals_GetRootStorage   11 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。