structure CLUS_STARTING_PARAMS (clusapi.h)
Indique si la tentative de démarrage du service clusterd’un nœud représente une tentative de formation ou de jonction d’un cluster, et si le nœud a tenté de démarrer cette version du service cluster auparavant. Les DLL de ressources reçoivent la structure CLUS_STARTING_PARAMS avec les codes de contrôle CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1 et CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2 .
Syntaxe
typedef struct CLUS_STARTING_PARAMS {
DWORD dwSize;
BOOL bForm;
BOOL bFirst;
} CLUS_STARTING_PARAMS, *PCLUS_STARTING_PARAMS;
Membres
dwSize
Taille d’octet de la structure.
bForm
Indique si ce début particulier du service de cluster représente un formulaire ou une opération de jointure.
TRUE
Le nœud qui démarre le service cluster tente de former un cluster. Aucun autre nœud n’est actuellement actif.
FALSE
Le nœud qui démarre le service cluster tente de joindre un cluster existant. Au moins un autre nœud est actuellement actif.
bFirst
Indique si cette version du service de cluster a déjà démarré sur le nœud.
TRUE
Le nœud démarre une version du service cluster pour la première fois.
FALSE
Le nœud a déjà démarré cette version du service cluster.
Remarques
La structure CLUS_STARTING_PARAMS permet aux DLL de ressources de répondre aux codes de contrôle CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1 et CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2 en fonction des circonstances du démarrage. Par exemple, une DLL peut effectuer des étapes d’initialisation spéciales lorsque le cluster se forme et effectuer un autre ensemble d’opérations en réponse aux jointures.
Exemples
L’exemple suivant illustre une implémentation abrégée de ResourceTypeControl. Pour plus d’informations, consultez Implémentation de 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
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows Server 2008 Entreprise, Windows Server 2008 Datacenter |
En-tête | clusapi.h |