IVdsIscsiPortalGroup
COM公式ドキュメント
IVdsIscsiPortalGroup インターフェース (vdshwprv.h) は、iSCSI ポータルグループに対するクエリおよび構成サービスを実行するためのメソッドを提供します。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IVdsIscsiPortalGroup::GetProperties メソッド (vdshwprv.h) は、ポータルグループのプロパティを返します。
| pPortalGroupProp | VDS_ISCSI_PORTALGROUP_PROP* | out | 呼び出し元によって割り当てられ、渡される VDS_ISCSI_PORTALGROUP_PROP 構造体のアドレスです。 |
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値 を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返す場合もあります。エラーは、VDS 自体、または使用されている基盤の VDS プロバイダー から発生する可能性があります。返される可能性のある値には次のものがあります。
| リターンコード/値 | 説明 |
|---|---|
| プロパティが正常に返されました。 | |
|
一部のプロパティは正常に取得されましたが、すべてではありません。すべてのプロパティを取得できない理由は、デバイスの取り外しなど、数多く考えられることに注意してください。 |
|
プロバイダーのキャッシュが破損しています。これは、接続されているデバイスに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。呼び出し元は、IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、キャッシュを復元できます。 |
|
ポータルグループオブジェクトは既に存在しません。 |
IVdsIscsiPortalGroup::GetTarget メソッド (vdshwprv.h) は、ポータルグループが属するターゲットを返します。
| ppTarget | IVdsIscsiTarget** | out | IVdsIscsiTarget のアドレスです。VDS は戻り時にインターフェースを初期化します。呼び出し元はインターフェースを解放する必要があります。 |
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値 を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返す場合もあります。エラーは、VDS 自体、または使用されている基盤の VDS プロバイダー から発生する可能性があります。返される可能性のある値には次のものがあります。
| リターンコード/値 | 説明 |
|---|---|
| ターゲットオブジェクトが正常に返されました。 | |
|
プロバイダーのキャッシュが破損しています。これは、接続されているデバイスに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。呼び出し元は、IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、キャッシュを復元できます。 |
|
ポータルグループオブジェクトは既に存在しません。 |
IVdsIscsiPortalGroup::QueryAssociatedPortals メソッド (vdshwprv.h) は、ポータルグループが関連付けられているポータルの列挙を返します。
| ppEnum | IEnumVdsObject** | out | ポータルを ポータルオブジェクト として列挙するために使用できる IEnumVdsObject インターフェースポインターのアドレスです。詳細については、列挙オブジェクトの操作 を参照してください。呼び出し元は、インターフェースおよび各ポータルオブジェクトが不要になったら、IUnknown::Release メソッドを呼び出して解放する必要があります。 |
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値 を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返す場合もあります。エラーは、VDS 自体、または使用されている基盤の VDS プロバイダー から発生する可能性があります。返される可能性のある値には次のものがあります。
| リターンコード/値 | 説明 |
|---|---|
| 関連付けられたポータルの列挙が正常に返されました。ポータルグループに関連付けられたポータルがない場合、列挙は空になります。 | |
|
プロバイダーのキャッシュが破損しています。これは、接続されているデバイスに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。呼び出し元は、IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、キャッシュを復元できます。 |
|
ポータルグループオブジェクトは既に存在しません。 |
|
別の操作が進行中です。この操作は、以前の操作が完了するまで続行できません。 |
IVdsIscsiPortalGroup::AddPortal メソッド (vdshwprv.h) は、ポータルグループにポータルを追加します。
| portalId | GUID | in | ポータルグループに追加するポータルの VDS_OBJECT_ID です。 |
| ppAsync | IVdsAsync** | out | IVdsAsync インターフェースポインターのアドレスです。VDS は戻り時にインターフェースを初期化します。呼び出し元はインターフェースを解放する必要があります。このインターフェースを使用して、操作のキャンセル、完了待ち、またはステータスの照会を行います。IVdsAsync::Wait を呼び出して成功を示す HRESULT 値が返された場合は、VDS_ASYNC_OUTPUT 構造体で返される各インターフェースポインターに対して IUnknown::Release メソッドを呼び出して、インターフェースを解放する必要があります。ただし、Wait が失敗を示す HRESULT 値を返した場合、または Wait の pHrResult パラメーターが失敗を示す HRESULT 値を受け取った場合、VDS_ASYNC_OUTPUT 構造体内のインターフェースポインターは NULL であり、解放する必要はありません。HRESULT 値の成功または失敗は、Winerror.h で定義されている SUCCEEDED および FAILED マクロを使用して確認できます。 |
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値 を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返す場合もあります。エラーは、VDS 自体、または使用されている基盤の VDS プロバイダー から発生する可能性があります。返される可能性のある値には次のものがあります。
| リターンコード/値 | 説明 |
|---|---|
| ポータルがポータルグループに正常に追加されました。 | |
|
プロバイダーのキャッシュが破損しています。これは、接続されているデバイスに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。呼び出し元は、IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、キャッシュを復元できます。 |
|
ポータルグループオブジェクトは既に存在しません。 |
|
別の操作が進行中です。この操作は、以前の操作が完了するまで続行できません。 |
|
portalID パラメーターが既存のオブジェクトを参照していません。 |
IVdsIscsiPortalGroup::RemovePortal メソッド (vdshwprv.h) は、ポータルグループからポータルを削除します。
| portalId | GUID | in | ポータルグループから削除するポータルの VDS_OBJECT_ID です。 |
| ppAsync | IVdsAsync** | out | IVdsAsync インターフェースポインターのアドレスです。VDS は戻り時にインターフェースを初期化します。呼び出し元はインターフェースを解放する必要があります。このインターフェースを使用して、操作のキャンセル、完了待ち、またはステータスの照会を行います。IVdsAsync::Wait を呼び出して成功を示す HRESULT 値が返された場合は、VDS_ASYNC_OUTPUT 構造体で返される各インターフェースポインターに対して IUnknown::Release メソッドを呼び出して、インターフェースを解放する必要があります。ただし、Wait が失敗を示す HRESULT 値を返した場合、または Wait の pHrResult パラメーターが失敗を示す HRESULT 値を受け取った場合、VDS_ASYNC_OUTPUT 構造体内のインターフェースポインターは NULL であり、解放する必要はありません。HRESULT 値の成功または失敗は、Winerror.h で定義されている SUCCEEDED および FAILED マクロを使用して確認できます。 |
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値 を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返す場合もあります。エラーは、VDS 自体、または使用されている基盤の VDS プロバイダー から発生する可能性があります。返される可能性のある値には次のものがあります。
| リターンコード/値 | 説明 |
|---|---|
| ポータルがポータルグループから正常に削除されました。 | |
|
プロバイダーのキャッシュが破損しています。これは、接続されているデバイスに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。呼び出し元は、IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、キャッシュを復元できます。 |
|
ポータルグループオブジェクトは既に存在しません。 |
|
別の操作が進行中です。この操作は、以前の操作が完了するまで続行できません。 |
|
portalID パラメーターが既存のオブジェクトを参照していません。 |
IVdsIscsiPortalGroup::Delete メソッド (vdshwprv.h) は、ポータルグループを削除します。
| ppAsync | IVdsAsync** | out | IVdsAsync インターフェースポインターのアドレスです。VDS は戻り時にインターフェースを初期化します。呼び出し元はインターフェースを解放する必要があります。このインターフェースを使用して、操作のキャンセル、完了待ち、またはステータスの照会を行います。IVdsAsync::Wait を呼び出して成功を示す HRESULT 値が返された場合は、VDS_ASYNC_OUTPUT 構造体で返される各インターフェースポインターに対して IUnknown::Release メソッドを呼び出して、インターフェースを解放する必要があります。ただし、Wait が失敗を示す HRESULT 値を返した場合、または Wait の pHrResult パラメーターが失敗を示す HRESULT 値を受け取った場合、VDS_ASYNC_OUTPUT 構造体内のインターフェースポインターは NULL であり、解放する必要はありません。HRESULT 値の成功または失敗は、Winerror.h で定義されている SUCCEEDED および FAILED マクロを使用して確認できます。 |
戻り値
このメソッドは、E_INVALIDARG や E_OUTOFMEMORY などの標準的な HRESULT 値、および VDS 固有の戻り値 を返すことがあります。また、HRESULT_FROM_WIN32 マクロを使用して変換された システムエラーコード を返す場合もあります。エラーは、VDS 自体、または使用されている基盤の VDS プロバイダー から発生する可能性があります。返される可能性のある値には次のものがあります。
| リターンコード/値 | 説明 |
|---|---|
| ポータルグループが正常に削除されました。 | |
|
プロバイダーのキャッシュが破損しています。これは、接続されているデバイスに関する情報をキャッシュするプロバイダー内部のソフトウェアまたは通信の問題を示します。呼び出し元は、IVdsHwProvider::Reenumerate メソッドに続けて IVdsHwProvider::Refresh メソッドを使用して、キャッシュを復元できます。 |
|
ポータルオブジェクトは既に存在しません。 |
|
別の操作が進行中です。この操作は、以前の操作が完了するまで続行できません。 |
|
ポータルがこのポータルグループに関連付けられています。このポータルグループを削除する前に、すべてのポータルをこのポータルグループから関連付け解除する必要があります。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IVdsIscsiPortalGroup "{FEF5F89D-A3DD-4B36-BF28-E7DDE045C593}" #usecom global IVdsIscsiPortalGroup IID_IVdsIscsiPortalGroup "{}" #comfunc global IVdsIscsiPortalGroup_GetProperties 3 var #comfunc global IVdsIscsiPortalGroup_GetTarget 4 sptr #comfunc global IVdsIscsiPortalGroup_QueryAssociatedPortals 5 sptr #comfunc global IVdsIscsiPortalGroup_AddPortal 6 int,sptr #comfunc global IVdsIscsiPortalGroup_RemovePortal 7 int,sptr #comfunc global IVdsIscsiPortalGroup_Delete 8 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVdsIscsiPortalGroup "{FEF5F89D-A3DD-4B36-BF28-E7DDE045C593}" #usecom global IVdsIscsiPortalGroup IID_IVdsIscsiPortalGroup "{}" #comfunc global IVdsIscsiPortalGroup_GetProperties 3 sptr #comfunc global IVdsIscsiPortalGroup_GetTarget 4 sptr #comfunc global IVdsIscsiPortalGroup_QueryAssociatedPortals 5 sptr #comfunc global IVdsIscsiPortalGroup_AddPortal 6 int,sptr #comfunc global IVdsIscsiPortalGroup_RemovePortal 7 int,sptr #comfunc global IVdsIscsiPortalGroup_Delete 8 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。