Compartir a través de


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

Consulte también

CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1

CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2