Compartir a través de


Función CancelClusterGroupOperation (clusapi.h)

Permite a un cliente cancelar una operación MoveClusterGroup o MoveClusterGroupEx que está pendiente para un grupo. A continuación, el grupo se devuelve a su estado persistente.

Sintaxis

DWORD CancelClusterGroupOperation(
  [in] HGROUP hGroup,
  [in] DWORD  dwCancelFlags_RESERVED
);

Parámetros

[in] hGroup

Identificador de un grupo de clústeres.

[in] dwCancelFlags_RESERVED

Este parámetro está reservado para uso futuro y debe establecerse en cero.

Valor devuelto

CancelClusterGroupOperation devuelve ERROR_SUCCESS si la operación de movimiento en el grupo se canceló correctamente.

CancelClusterGroupOperation devuelve ERROR_IO_PENDING si la cancelación de la operación de traslado está en curso.

CancelClusterGroupOperation devuelve un código de error distinto de cero si se produjo un error al emitir la cancelación de la operación de grupo de movimiento en el grupo designado.

Comentarios

CancelClusterGroupOperation intenta cancelar una operación de movimiento pendiente en un grupo de clústeres que se emitió a través de una llamada MoveClusterGroup o MoveClusterGroupEx que devolvió ERROR_IO_PENDING y sigue en curso. La llamada intenta cancelar la operación de movimiento pendiente y llevar el grupo a su estado persistente.

Ejemplos

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <ClusAPI.h>


#define DemoResDllTypeName L"dummy"
#define DemoGroupName L"DemoGroup"

int __cdecl main( void )
{
    HCLUSTER hCluster= NULL;
    HGROUP hGroup = NULL;
    DWORD error = 0;

    hCluster = OpenCluster( NULL );
    if ( hCluster == NULL )
    {
        error = GetLastError();
        wprintf( L"Failed to open cluster: 0x%x\n", error );
        goto Cleanup;
    }

    hGroup = OpenClusterGroup( hCluster, DemoGroupName );
    if ( hGroup == NULL )
    {
        error = GetLastError();
        wprintf( L"Failed to open cluster group " DemoGroupName L": 0x%x\n", error );
        goto Cleanup;
    }


    // Cancel Move Group example
    error = MoveClusterGroupEx( hGroup,
                                NULL,
                                CLUSAPI_GROUP_MOVE_RETURN_TO_SOURCE_NODE_ON_ERROR | CLUSAPI_GROUP_MOVE_IGNORE_RESOURCE_STATUS,
                                NULL,
                                0);

    if ( error == ERROR_IO_PENDING  )
    {
        wprintf( L"Group move pending" DemoGroupName L": 0x%x\n", error );
        error = ERROR_SUCCESS;

        // Issuing cancel to the move operation
        error = CancelClusterGroupOperation(hGroup, 0);
        if ( error == ERROR_IO_PENDING  || error == ERROR_SUCCESS )
        {
            // the cancel was registered successfully
            wprintf( L"Cancel issued for move operation for the group " DemoGroupName L"\n" );
        }
        else
        {
            wprintf( L"Failed to Cancel move operation for the group " DemoGroupName L": 0x%x\n" );
        }
    }
    else if ( error != ERROR_SUCCESS)
    {
        wprintf( L"Failed to move group" DemoGroupName L": 0x%x\n", error );
    }
    else 
    {
        wprintf( L"Group move completed" DemoGroupName L": 0x%x\n");
    }


Cleanup:

    if ( hGroup != NULL )
    {
        CloseClusterGroup( hGroup );
        hGroup = NULL;
    }
    if ( hCluster != NULL )
    {
        CloseCluster( hCluster );
        hCluster = NULL;
    }

    return (int)error;
}

Requisitos

Requisito Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Windows
Encabezado clusapi.h
Library ClusAPI.lib
Archivo DLL ClusAPI.dll