Win32 API 日本語リファレンス
ホームNetworking.Clustering › IGetClusterDataInfo

IGetClusterDataInfo

COM
IID97dede51-fc6b-11cf-b5f5-00a0c90ab505継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IGetClusterDataInfo インターフェイスは、クラスターに関する情報を取得するためにフェールオーバー クラスター アドミニストレーター拡張機能から呼び出されます。

解説(Remarks)

IGetClusterDataInfo インターフェイスは、次のメソッドの実装が クラスター アドミニストレーターから呼び出されたときに使用できます。

フェールオーバー クラスター アドミニストレーターは、これらのメソッドの piData パラメーターとして IUnknown ポインターを渡します。piData を使用して QueryInterface メソッドを呼び出し、 IGetClusterDataInfo のいずれかのメソッドを取得してください。

メソッド 3

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

vtbl 3 HRESULT GetClusterName(LPWSTR lpszName, INT* pcchName)

クラスターの名前を返します。(IGetClusterDataInfo.GetClusterName)

lpszNameLPWSTRoutクラスターの名前を格納する null で終わる Unicode 文字列へのポインター。名前の長さのみを要求する場合は NULL を指定します。BSTR として宣言されていますが、このパラメーターは LPWSTR として実装されています。
pcchNameINT*inout入力時は、lpszName パラメーターが指すバッファーのサイズ (文字数) へのポインター。 出力時は、NULL 終端文字を含むバッファー内の総文字数へのポインターです。

戻り値

GetClusterName が成功しなかった場合は、他の HRESULT 値を返すことがあります。

戻り値/値 説明
NOERROR
0
操作は成功しました。
E_INVALIDARG
0x80070057
1 つ以上のパラメーターが無効です。
HRESULT_FROM_WIN32(ERROR_MORE_DATA)
0x800700ea
lpszName が指すバッファーが小さすぎるため、要求された名前を格納できません。 GetClusterName は、必要な文字数を pcchName の内容として返します。

解説(Remarks)

lpszName パラメーターが NULL に設定され、 pcchName パラメーターが NULL でない場合、 GetClusterName メソッドは NOERROR を返します。

vtbl 4 HCLUSTER GetClusterHandle()

クラスターへのハンドルを返します。

戻り値

クラスター ハンドル。

vtbl 5 INT GetObjectCount()

選択されているクラスター オブジェクトの数を返します。

戻り値

選択されているオブジェクトの数。

解説(Remarks)

フェールオーバー クラスター アドミニストレーターは選択オブジェクトを 1 つしかサポートしないため、 GetObjectCount メソッドは常に 1 を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IGetClusterDataInfo "{97DEDE51-FC6B-11CF-B5F5-00A0C90AB505}"
#usecom global IGetClusterDataInfo IID_IGetClusterDataInfo "{}"
#comfunc global IGetClusterDataInfo_GetClusterName    3 var,var
#comfunc global IGetClusterDataInfo_GetClusterHandle  4
#comfunc global IGetClusterDataInfo_GetObjectCount    5
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。