CLUS_STARTING_PARAMS 構造体 (clusapi.h)
クラスター サービスを開始する ノードの 試行が 、クラスター の形成または参加の試行を表す かどうか、およびノードがこのバージョンのクラスター サービスの開始を以前に試行したかどうかを示します。 リソース DLL は 、CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1と CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2 制御コードを含む CLUS_STARTING_PARAMS 構造を受け取ります。
構文
typedef struct CLUS_STARTING_PARAMS {
DWORD dwSize;
BOOL bForm;
BOOL bFirst;
} CLUS_STARTING_PARAMS, *PCLUS_STARTING_PARAMS;
メンバー
dwSize
構造体のバイト サイズ。
bForm
クラスター サービスのこの特定の開始がフォームまたは結合操作を表すかどうかを示します。
TRUE
クラスター サービスを開始するノードがクラスターを形成しようとしています。 現在アクティブなノードは他にありません。
FALSE
クラスター サービスを開始するノードが、既存のクラスターに参加しようとしています。 少なくとも 1 つの他のノードが現在アクティブです。
bFirst
このバージョンのクラスター サービスがノードで開始されたかどうかを示します。
TRUE
ノードは、クラスター サービスのバージョンを初めて開始しています。
FALSE
ノードは、以前にこのバージョンのクラスター サービスを開始しました。
注釈
CLUS_STARTING_PARAMS構造を使用すると、リソース DLL がCLUSCTL_RESOURCE_TYPE_STARTING_PHASE1に応答し、開始の状況に基づいて制御コードをCLUSCTL_RESOURCE_TYPE_STARTING_PHASE2できます。 たとえば、DLL は、クラスターが形成されるときに特別な初期化手順を実行し、結合に応答して別の一連の操作を実行する場合があります。
例
次の例は、 ResourceTypeControl の省略された実装を示しています。 詳細については、「 ResourceTypeControl の実装」を参照してください。
const LPWSTR g_MY_RESOURCE_TYPE_NAME[] =
{
L"MyType_0",
L"MyType_1",
L"MyType_2",
L"MyType_3"
};
DWORD WINAPI MyDllResourceTypeControl(
IN LPCWSTR ResourceTypeName,
IN DWORD ControlCode,
IN PVOID InBuffer,
IN DWORD InBufferSize,
OUT PVOID OutBuffer,
IN DWORD OutBufferSize,
OUT LPDWORD BytesReturned
)
{
DWORD status;
PCLUS_STARTING_PARAMS pStart;
switch ( ControlCode )
{
case CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1:
if( lstrcmpi( ResourceTypeName, g_MY_RESOURCE_TYPE_NAME[2] ) == 0 )
{
pStart = (PCLUS_STARTING_PARAMS) InBuffer;
if( ( pStart->bForm == TRUE ) &&
( pStart->bFirst == FALSE ) )
{
// Hypothetical initialization code for resource type "MyType_2"
// Fires only when the cluster forms, but not for first-time launches of the Cluster service.
}
}
else
{
status = ERROR_INVALID_FUNCTION;
}
break;
case CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2:
pStart = (PCLUS_STARTING_PARAMS) InBuffer;
if( pStart->bFirst == TRUE )
{
// Hypothetical verification code for all resource types supported by the DLL
// Fires for first-time launches of the Cluster service
}
else
{
status = ERROR_INVALID_FUNCTION;
}
break;
// case ( Other control codes )....
// ...
// break;
default:
status = ERROR_INVALID_FUNCTION;
break;
}
// end switch
return( status );
}
// MyDllResourceTypeControl
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2008 Enterprise、Windows Server 2008 Datacenter |
Header | clusapi.h |