Freigeben über


ClusterGroupControl-Funktion (clusapi.h)

Initiiert einen Vorgang, der sich auf eine Gruppe auswirkt. Der ausgeführte Vorgang hängt vom Steuerelementcode ab, der an den dwControlCode-Parameter übergeben wird.

Syntax

DWORD ClusterGroupControl(
  [in]            HGROUP  hGroup,
  [in, optional]  HNODE   hHostNode,
  [in]            DWORD   dwControlCode,
  [in, optional]  LPVOID  lpInBuffer,
  [in]            DWORD   nInBufferSize,
  [out, optional] LPVOID  lpOutBuffer,
  [in]            DWORD   nOutBufferSize,
  [out, optional] LPDWORD lpBytesReturned
);

Parameter

[in] hGroup

Handle für die gruppe, die betroffen ist.

[in, optional] hHostNode

Wenn nicht NULL, handle an den Knoten, um den vorgang auszuführen, der durch den Steuerelementcode dargestellt wird. Wenn NULL, führt der Knoten , der die Gruppe besitzt, den Vorgang aus. Die Angabe von hHostNode ist optional.

[in] dwControlCode

Ein Gruppensteuerelementcode , der den auszuführenden Vorgang angibt. Informationen zur Syntax, die einem Steuerelementcode zugeordnet ist, finden Sie unter
Steuerungscodearchitektur und die folgenden Themen:

[in, optional] lpInBuffer

Zeiger auf einen Eingabepuffer, der informationen enthält, die für den Vorgang erforderlich sind, oder NULL , wenn keine Informationen benötigt werden.

[in] nInBufferSize

Die zugeordnete Größe (in Bytes) des Eingabepuffers.

[out, optional] lpOutBuffer

Zeiger auf einen Ausgabepuffer zum Empfangen der daten, die sich aus dem Vorgang ergeben, oder NULL , wenn keine Daten zurückgegeben werden.

[in] nOutBufferSize

Die zugeordnete Größe (in Bytes) des Ausgabepuffers.

[out, optional] lpBytesReturned

Gibt die tatsächliche Größe (in Bytes) der Daten zurück, die sich aus dem Vorgang ergeben. Wenn diese Informationen nicht benötigt werden, übergeben Sie NULL für lpBytesReturned.

Rückgabewert

Die Funktion gibt einen der folgenden Werte zurück.

Rückgabecode Beschreibung
ERROR_SUCCESS
Der Vorgang wurde durchgeführt. Wenn für den Vorgang ein Ausgabepuffer erforderlich ist, verweist lpBytesReturned (wenn nicht NULL bei der Eingabe) auf die tatsächliche Größe der im Puffer zurückgegebenen Daten.
ERROR_MORE_DATA
Der Ausgabepuffer, auf den lpOutBuffer verweist, war nicht groß genug, um die daten, die sich aus dem Vorgang ergeben, aufzunehmen. Der parameter lpBytesReturned (wenn nicht NULL bei der Eingabe) zeigt auf die größe, die für den Ausgabepuffer erforderlich ist. Nur Vorgänge, die einen Ausgabepuffer erfordern, geben ERROR_MORE_DATA zurück. Wenn der lpOutBuffer-ParameterNULL und der nOutBufferSize-Parameter null ist, können ERROR_SUCCESS zurückgegeben werden, nicht ERROR_MORE_DATA.
Systemfehlercode
Der Vorgang war nicht erfolgreich. Wenn für den Vorgang ein Ausgabepuffer erforderlich ist, ist der von lpBytesReturned angegebene Wert (wenn bei der Eingabe nicht NULL ) angegeben wird, unzuverlässig.

Hinweise

Wenn ClusterGroupControlERROR_MORE_DATA zurückgibt, legen Sie nOutBufferSize auf die Anzahl der Bytes fest, auf die lpBytesReturned verweist, und rufen Sie die Funktion erneut auf.

Übergeben Sie LPC- und RPC-Handles nicht an denselben Funktionsaufruf. Andernfalls löst der Aufruf eine RPC-Ausnahme aus und kann zusätzliche destruktive Auswirkungen haben. Informationen dazu, wie LPC- und RPC-Handles erstellt werden, finden Sie unter LPC- und RPC-Handles und OpenCluster.

ClusterGroupControl ist eine der Steuerungscodefunktionen. Weitere Informationen zu Steuercodes und Steuerelementcodefunktionen finden Sie unter Verwenden von Steuercodes.

Beispiele

Das folgende Codefragment veranschaulicht einen Aufruf von ClusterGroupControl.

// Allocate buffer.
lpPropList = LocalAlloc( LPTR, cbAllocated );

// Initial call.
dwResult = ClusterGroupControl( hCluster,
                                NULL,
                                CLUSCTL_GROUP_GET_COMMON_PROPERTIES, 
                                NULL,
                                0,
                                lpPropList,
                                cbAllocated,
                                &cbReturned );

// If the buffer was too small, reallocate it to the necessary size,
// returned in cbReturned.
if ( dwResult == ERROR_MORE_DATA )
{
  LocalFree( lpPropList );
  cbAllocated = cbReturned;
  lpPropList = LocalAlloc( LPTR, cbAllocated );
  if ( lpPropList == NULL )
  {
    // Respond to error.
  }
  dwResult = ClusterGroupControl( hCluster,
                                  NULL,
                                  CLUSCTL_GROUP_GET_COMMON_PROPERTIES,
                                  NULL,
                                  0,
                                  lpPropList,
                                  cbAllocated,
                                  &cbReturned );
}

if ( dwResult != ERROR_SUCCESS )
{
  // Respond to error.
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2008 Enterprise, Windows Server 2008 Datacenter
Zielplattform Windows
Kopfzeile clusapi.h
Bibliothek ClusAPI.lib
DLL ClusAPI.dll

Weitere Informationen

Gruppensteuerelementcodes

OpenCluster