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

IVdsLunPlex

COM
IID0ee1a790-5d2e-4abb-8c99-c481e8be2138継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVdsLunPlex インターフェース (vdshwprv.h) は、LUN プレックスに対するクエリおよび構成操作を実行するためのメソッドを提供します。

メソッド 5

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

vtbl 3 HRESULT GetProperties(VDS_LUN_PLEX_PROP* pPlexProp)

IVdsLunPlex::GetProperties (vdshwprv.h) メソッドは、LUN プレックスのプロパティを返します。

pPlexPropVDS_LUN_PLEX_PROP*out呼び出し元が割り当てて渡す VDS_LUN_PLEX_PROP 構造体のアドレス。

戻り値

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

リターンコード/値 説明
VDS_S_PROPERTIES_INCOMPLETE
0x00042715L
一部のプロパティは正常に取得されましたが、すべてではありません。デバイスの取り外しなど、すべてのプロパティの取得に失敗する原因は数多く存在する点に注意してください。
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
この戻り値は、アレイに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。キャッシュを復元するには、IVdsHwProvider::Reenumerate メソッドを実行した後に IVdsHwProvider::Refresh メソッドを実行してください。
VDS_E_OBJECT_DELETED
0x8004240BL

LUN プレックスは既に存在しません。

vtbl 4 HRESULT GetLun(IVdsLun** ppLun)

IVdsLunPlex::GetLun (vdshwprv.h) メソッドは、プレックスが属する LUN を返します。

ppLunIVdsLun**outIVdsLun インターフェースポインターのアドレス。呼び出し元はインターフェースを解放する必要があります。

戻り値

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

リターンコード/値 説明
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
この戻り値は、アレイに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。キャッシュを復元するには、IVdsHwProvider::Reenumerate メソッドを実行した後に IVdsHwProvider::Refresh メソッドを実行してください。
VDS_E_OBJECT_DELETED
0x8004240BL

LUN プレックスは既に存在しません。

vtbl 5 HRESULT QueryExtents(VDS_DRIVE_EXTENT** ppExtentArray, INT* plNumberOfExtents)

IVdsLunPlex::QueryExtents (vdshwprv.h) メソッドは、プレックスを構成するドライブエクステントの配列を返します。

ppExtentArrayVDS_DRIVE_EXTENT**out呼び出し元が渡す、ドライブエクステントへのポインターの配列を指すポインター。これらは、プレックスを構成するエクステントです。VDS_DRIVE_EXTENT 構造体を参照してください。呼び出し元は、 CoTaskMemFree 関数を使用してこの配列を解放する必要があります。
plNumberOfExtentsINT*outppExtentArray で返されるドライブエクステントの数を指すポインター。

戻り値

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

リターンコード/値 説明
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
この戻り値は、アレイに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。キャッシュを復元するには、IVdsHwProvider::Reenumerate メソッドを実行した後に IVdsHwProvider::Refresh メソッドを実行してください。
VDS_E_OBJECT_DELETED
0x8004240BL

LUN プレックスは既に存在しません。

VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN プレックスは失敗状態にあり、要求された操作を実行できません。
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
別の操作が進行中です。この操作は、先行する 1 つ以上の操作が完了するまで続行できません。

解説(Remarks)

指定したドライブ上のエクステントを取得するには、IVdsDrive::QueryExtents メソッドを使用してください。

vtbl 6 HRESULT QueryHints(VDS_HINTS* pHints)

IVdsLunPlex::QueryHints (vdshwprv.h) メソッドは、現在 LUN プレックスに適用されているヒントを返します。

pHintsVDS_HINTS*out返されるプレックスのヒントを指すポインター。VDS_HINTS 構造体を参照してください。

戻り値

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

リターンコード/値 説明
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
この戻り値は、アレイに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。キャッシュを復元するには、IVdsHwProvider::Reenumerate メソッドを実行した後に IVdsHwProvider::Refresh メソッドを実行してください。
VDS_E_OBJECT_DELETED
0x8004240BL
LUN プレックスオブジェクトは既に存在しません。
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN プレックスは失敗状態にあり、要求された操作を実行できません。
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
別の操作が進行中です。この操作は、先行する 1 つ以上の操作が完了するまで続行できません。
VDS_E_NOT_SUPPORTED
0x80042400L
この操作、またはパラメーターの組み合わせは、このプロバイダーではサポートされていません。

解説(Remarks)

呼び出し元は、LUN の作成時に IVdsSubSystem::CreateLun メソッドに pHints パラメーターを渡すことで、または IVdsLunPlex::ApplyHints メソッドを使用して既存のプレックスに新しいヒントのセットを適用することで、ヒントを指定できます。

IVdsLun::ApplyHints メソッドの呼び出しは、LUN を構成するプレックスに影響を与える可能性がある点に注意してください。LUN 全体のヒントを表示するには、IVdsLun::QueryHints メソッドを使用してください。

vtbl 7 HRESULT ApplyHints(VDS_HINTS* pHints)

IVdsLunPlex::ApplyHints (vdshwprv.h) メソッドは、新しいヒントのセットを LUN プレックスに適用します。プレックスに適用されたヒントは、LUN にもその他のプレックスにも影響を与えません。

pHintsVDS_HINTS*inLUN プレックスに適用するヒントを指すポインター。VDS_HINTS 構造体を参照してください。LUN プレックスに関連するフィールドのみを設定することが想定されており、関連しないフィールドは無視されます。

戻り値

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

リターンコード/値 説明
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
この戻り値は、アレイに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。キャッシュを復元するには、IVdsHwProvider::Reenumerate メソッドを実行した後に IVdsHwProvider::Refresh メソッドを実行してください。
VDS_E_OBJECT_DELETED
0x8004240BL
LUN プレックスは既に存在しません。
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN プレックスは失敗状態にあり、要求された操作を実行できません。
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
別の操作が進行中です。この操作は、先行する 1 つ以上の操作が完了するまで続行できません。
VDS_E_NOT_SUPPORTED
0x80042400L
この操作、またはパラメーターの組み合わせは、このプロバイダーではサポートされていません。

解説(Remarks)

LUN プレックスの現在のヒントを取得するには、IVdsLunPlex::QueryHints メソッドを使用してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_IVdsLunPlex "{0EE1A790-5D2E-4ABB-8C99-C481E8BE2138}"
#usecom global IVdsLunPlex IID_IVdsLunPlex "{}"
#comfunc global IVdsLunPlex_GetProperties  3 var
#comfunc global IVdsLunPlex_GetLun         4 sptr
#comfunc global IVdsLunPlex_QueryExtents   5 var,var
#comfunc global IVdsLunPlex_QueryHints     6 var
#comfunc global IVdsLunPlex_ApplyHints     7 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。