CancelClusterGroupOperation-Funktion (clusapi.h)
Ermöglicht einem Client das Abbrechen eines MoveClusterGroup - oder MoveClusterGroupEx-Vorgangs , der für eine Gruppe aussteht. Die Gruppe wird dann in ihren persistenten Zustand zurückgegeben.
Syntax
DWORD CancelClusterGroupOperation(
[in] HGROUP hGroup,
[in] DWORD dwCancelFlags_RESERVED
);
Parameter
[in] hGroup
Das Handle für eine Clustergruppe.
[in] dwCancelFlags_RESERVED
Dieser Parameter ist für die zukünftige Verwendung reserviert und muss auf 0 (null) festgelegt werden.
Rückgabewert
CancelClusterGroupOperation gibt ERROR_SUCCESS zurück, wenn der Verschiebungsvorgang für die Gruppe erfolgreich abgebrochen wurde.
CancelClusterGroupOperation gibt ERROR_IO_PENDING zurück, wenn der Abbruch des Verschiebungsvorgangs jetzt ausgeführt wird.
CancelClusterGroupOperation gibt einen anderen Fehlercode ungleich null zurück, wenn ein Fehler aufgetreten ist, der den Abbruch für den Vorgang zum Verschieben einer Gruppe für die angegebene Gruppe ausgibt.
Hinweise
CancelClusterGroupOperation versucht, einen ausstehenden Verschiebungsvorgang für eine Clustergruppe abzubrechen, die über einen MoveClusterGroup- oder MoveClusterGroupEx-Aufruf ausgegeben wurde, der ERROR_IO_PENDING zurückgegeben hat und noch ausgeführt wird. Der Aufruf versucht, den ausstehenden Verschiebungsvorgang abzubrechen und die Gruppe in ihren persistenten Zustand zu versetzen.
Beispiele
#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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2012 |
Zielplattform | Windows |
Kopfzeile | clusapi.h |
Bibliothek | ClusAPI.lib |
DLL | ClusAPI.dll |