共用方式為


CLUS_STARTING_PARAMS結構 (clusapi.h)

指出 節點 嘗試啟動 叢集服務 是否代表嘗試形成或加入 叢集,以及節點是否已嘗試啟動此版本的叢集服務之前。 資源 DLL 會使用 CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1 和CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2控件程式代碼來接收 CLUS_STARTING_PARAMS 結構。

語法

typedef struct CLUS_STARTING_PARAMS {
  DWORD dwSize;
  BOOL  bForm;
  BOOL  bFirst;
} CLUS_STARTING_PARAMS, *PCLUS_STARTING_PARAMS;

成員

dwSize

結構的位元組大小。

bForm

指出叢集服務的這個特定啟動是否代表窗體或聯結作業。

TRUE

啟動叢集服務的節點正嘗試形成叢集。 目前沒有其他節點處於作用中狀態。

false

啟動叢集服務的節點正在嘗試加入現有的叢集。 目前至少有一個其他節點正在使用中。

bFirst

指出這個版本的叢集服務是否已在節點上啟動。

TRUE

節點第一次啟動叢集服務的版本。

false

節點先前已啟動此版本的叢集服務。

備註

CLUS_STARTING_PARAMS結構可讓資源 DLL 根據開始的情況回應CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1和CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2控制程式代碼。 例如,DLL 可能會在叢集形成時執行特殊初始化步驟,並執行另一組作業以響應聯結。

範例

下列範例說明 ResourceTypeControl 的縮寫實作。 如需詳細資訊,請參閱 實作 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

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2008 Enterprise、Windows Server 2008 Datacenter
標頭 clusapi.h

另請參閱

CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1

CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2