Funzione CancelClusterGroupOperation (clusapi.h)
Consente a un client di annullare un'operazione MoveClusterGroup o MoveClusterGroupEx in sospeso per un gruppo. Il gruppo viene quindi restituito allo stato permanente.
Sintassi
DWORD CancelClusterGroupOperation(
[in] HGROUP hGroup,
[in] DWORD dwCancelFlags_RESERVED
);
Parametri
[in] hGroup
Handle di un gruppo di cluster.
[in] dwCancelFlags_RESERVED
Questo parametro è riservato per uso futuro e deve essere impostato su zero.
Valore restituito
CancelClusterGroupOperation restituisce ERROR_SUCCESS se l'operazione di spostamento sul gruppo è stata annullata correttamente.
CancelClusterGroupOperation restituisce ERROR_IO_PENDING se l'annullamento dell'operazione di spostamento è ora in corso.
CancelClusterGroupOperation restituisce un codice di errore diverso da zero se si è verificato un errore durante l'esecuzione dell'annullamento per l'operazione di spostamento del gruppo nel gruppo designato.
Commenti
CancelClusterGroupOperation tenta di annullare un'operazione di spostamento in sospeso in un gruppo di cluster rilasciato tramite una chiamata MoveClusterGroup o MoveClusterGroupEx che ha restituito ERROR_IO_PENDING ed è ancora in corso. La chiamata tenta di annullare l'operazione di spostamento in sospeso e di portare il gruppo allo stato permanente.
Esempio
#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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2012 |
Piattaforma di destinazione | Windows |
Intestazione | clusapi.h |
Libreria | ClusAPI.lib |
DLL | ClusAPI.dll |