estructura CLUS_STARTING_PARAMS (clusapi.h)
Indica si el intento de un nodo para iniciar el servicio de clúster representa un intento de formar o unir un clúster, y si el nodo ha intentado iniciar esta versión del servicio de clúster antes. Los archivos DLL de recursos reciben la estructura de CLUS_STARTING_PARAMS con los códigos de control CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1 y CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2 .
Sintaxis
typedef struct CLUS_STARTING_PARAMS {
DWORD dwSize;
BOOL bForm;
BOOL bFirst;
} CLUS_STARTING_PARAMS, *PCLUS_STARTING_PARAMS;
Miembros
dwSize
Tamaño de bytes de la estructura.
bForm
Indica si este inicio concreto del servicio de clúster representa un formulario o una operación de combinación.
TRUE
El nodo que inicia el servicio de clúster está intentando formar un clúster. Actualmente no hay otros nodos activos.
FALSE
El nodo que inicia el servicio de clúster está intentando unirse a un clúster existente. Actualmente hay al menos otro nodo activo.
bFirst
Indica si esta versión del servicio de clúster se ha iniciado en el nodo.
TRUE
El nodo inicia una versión del servicio de clúster por primera vez.
FALSE
El nodo ha iniciado esta versión del servicio de clúster anteriormente.
Comentarios
La estructura de CLUS_STARTING_PARAMS permite que los archivos DLL de recursos respondan al CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1 y CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2 códigos de control en función de las circunstancias del inicio. Por ejemplo, un archivo DLL podría realizar pasos de inicialización especiales cuando el clúster se forma y realizar otro conjunto de operaciones en respuesta a las combinaciones.
Ejemplos
En el ejemplo siguiente se muestra una implementación abreviada de ResourceTypeControl. Para obtener más información, consulte Implementación 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
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | No se admite ninguno |
Servidor mínimo compatible | Windows Server 2008 Enterprise, Windows Server 2008 Datacenter |
Encabezado | clusapi.h |