다음을 통해 공유


GetClusterNotify 함수(clusapi.h)

알림 포트에 대해 저장된 다음 알림 이벤트와 관련된 정보를 반환합니다. PCLUSAPI_GET_CLUSTER_NOTIFY 형식은 이 함수에 대한 포인터를 정의합니다.

구문

DWORD GetClusterNotify(
  [in]           HCHANGE   hChange,
  [out]          DWORD_PTR *lpdwNotifyKey,
  [out]          LPDWORD   lpdwFilterType,
  [out]          LPWSTR    lpszName,
  [in, out]      LPDWORD   lpcchName,
  [in, optional] DWORD     dwMilliseconds
);

매개 변수

[in] hChange

CreateClusterNotifyPort 함수를 사용하여 만든 알림 포트에 대한 핸들입니다.

[out] lpdwNotifyKey

hChange 매개 변수로 식별되는 포트에 대한 알림 키에 대한 포인터입니다.

[out] lpdwFilterType

반환된 이벤트의 형식을 나타내는 플래그에 대한 포인터입니다. 이 플래그는 CLUSTER_CHANGE 열거형의 다음 값 중 하나입니다.

CLUSTER_CHANGE_CLUSTER_PROPERTY(0x40000000)

큐는 클러스터의 우선 순위가 지정된 내부 네트워크 목록이 변경될 때 알림을 받 습니다 .

CLUSTER_CHANGE_CLUSTER_RECONNECT(0x00080000)

큐는 클러스터에 대한 연결이 로 식별될 때 알림을 받습니다.
hCluster 매개 변수는 잠시 연결을 끊은 후 다시 설정됩니다. 이 이벤트 직전 또는 이후에 생성된 일부 이벤트가 손실되었을 수 있습니다. 정확한 상태 정보를 받으려면 열려 있는 모든 연결을 닫고 다시 연결해야 합니다.

CLUSTER_CHANGE_CLUSTER_STATE(0x20000000)

클러스터를 사용할 수 없게 되면 큐에서 알림을 받습니다. 즉, 클러스터와 통신하려는 모든 시도가 실패합니다.

CLUSTER_CHANGE_GROUP_ADDED(0x00004000)

큐는 클러스터에 새 그룹을 만들 때 알림을 받습니다.

CLUSTER_CHANGE_GROUP_DELETED(0x00002000)

기존 그룹이 삭제되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_GROUP_PROPERTY(0x00008000)

큐는 그룹의 속성 이 변경되거나 리소스가 그룹에서 추가되거나 제거될 때 알림을 받습니다.

CLUSTER_CHANGE_GROUP_STATE(0x00001000)

큐는 그룹이 상태를 변경할 때 알림을 받습니다. 가능한 그룹 상태 값 목록은 GetClusterGroupState를 참조하세요.

CLUSTER_CHANGE_HANDLE_CLOSE(0x80000000)

클러스터 개체와 연결된 핸들이 닫혀 있으면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_NETINTERFACE_ADDED(0x04000000)

네트워크 인터페이스 가 클러스터 노드에 추가되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_NETINTERFACE_DELETED(0x02000000)

네트워크 인터페이스가 클러스터 노드에서 영구적으로 제거되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_NETINTERFACE_PROPERTY(0x08000000)

큐는 기존 네트워크 인터페이스의 속성 이 변경될 때 알림을 받습니다.

CLUSTER_CHANGE_NETINTERFACE_STATE(0x01000000)

네트워크 인터페이스가 상태를 변경하면 큐에서 알림을 받습니다. 가능한 네트워크 인터페이스 상태 값 목록은 GetClusterNetInterfaceState를 참조하세요.

CLUSTER_CHANGE_NETWORK_ADDED(0x00400000)

네트워크가 클러스터 환경에 추가되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_NETWORK_DELETED(0x00200000)

네트워크가 클러스터 환경에서 영구적으로 제거되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_NETWORK_PROPERTY(0x00800000)

큐는 기존 네트워크의 속성 이 변경될 때 알림을 받습니다.

CLUSTER_CHANGE_NETWORK_STATE(0x00100000)

큐는 네트워크가 상태를 변경할 때 알림을 받습니다. 가능한 네트워크 상태 값 목록은 GetClusterNetworkState를 참조하세요.

CLUSTER_CHANGE_NODE_ADDED(0x00000004)

노드 가 클러스터에 추가되면 큐에서 알림을 받습니다. 클러스터 서비스가 노드에 처음 설치된 경우에만 노드를 추가할 수 있습니다.

CLUSTER_CHANGE_NODE_DELETED(0x00000002)

클러스터에서 노드가 영구적으로 제거되면 큐에서 알림을 받습니다. EvictClusterNode 함수를 호출하여 기존 클러스터에서 노드를 영구적으로 삭제할 수 있습니다.

CLUSTER_CHANGE_NODE_PROPERTY(0x00000008)

이 알림은 나중에 사용할 수 있습니다.

CLUSTER_CHANGE_NODE_STATE(0x00000001)

노드 상태가 변경되면 큐에서 알림을 받습니다. 가능한 노드 상태 값 목록은 GetClusterNodeState를 참조하세요.

CLUSTER_CHANGE_QUORUM_STATE(0x10000000)

이 알림은 나중에 사용할 수 있습니다.

CLUSTER_CHANGE_REGISTRY_ATTRIBUTES(0x00000020)

큐는 클러스터 데이터베이스 키의 특성이 변경될 때 알림을 받습니다. 현재 정의된 유일한 클러스터 데이터베이스 키 특성은 ClusterRegSetKeySecurity를 사용하여 변경할 수 있는 보안 설명자입니다.

CLUSTER_CHANGE_REGISTRY_NAME(0x00000010)

큐는 클러스터 데이터베이스 키의 이름이 변경되면 알림을 받습니다.

CLUSTER_CHANGE_REGISTRY_SUBTREE(0x00000080)

다른 CLUSTER_CHANGE_REGISTRY 이벤트가 전체 클러스터 데이터베이스에 적용됨을 나타냅니다. 이 플래그가 포함되지 않은 경우 이벤트는 지정된 키에만 적용됩니다.

CLUSTER_CHANGE_REGISTRY_VALUE(0x00000040)

지정된 클러스터 데이터베이스 키의 값이 변경되거나 삭제되면 큐에서 알림을 받습니다. ClusterRegSetValue 함수를 사용하여 클러스터 데이터베이스 값을 변경하고 ClusterRegDeleteValue 함수를 사용하여 삭제할 수 있습니다.

CLUSTER_CHANGE_RESOURCE_ADDED(0x00000400)

클러스터에 새 리소스 가 만들어지면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_RESOURCE_DELETED(0x00000200)

리소스가 삭제되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_RESOURCE_PROPERTY(0x00000800)

리소스의 속성, 종속성 또는 가능한 소유자 노드가 변경되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_RESOURCE_STATE(0x00000100)

리소스 상태가 변경되면 큐에서 알림을 받습니다. 가능한 리소스 상태 값 목록은 GetClusterResourceState를 참조하세요.

CLUSTER_CHANGE_RESOURCE_TYPE_ADDED(0x00020000)

클러스터에 새 리소스 종류 가 만들어지면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_RESOURCE_TYPE_DELETED(0x00010000)

기존 리소스 종류가 삭제되면 큐에서 알림을 받습니다.

CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY(0x00040000)

리소스 유형의 속성 이 변경되면 큐에서 알림을 받습니다.

[out] lpszName

이벤트를 트리거한 클러스터 개체 의 이름을 포함하는 null로 종료된 유니코드 문자열에 대한 포인터입니다. 다음 목록에서는 이벤트 유형별 lpszName 의 콘텐츠를 설명합니다. CLUSTER_CHANGE_REGISTRY_SUBTREE 테이블에 포함되지 않습니다. 이 이벤트 유형은 GetClusterNotify에서 처리되지 않습니다.

CLUSTER_CHANGE_CLUSTER_PROPERTY(0x40000000)

변경된 클러스터의 이름입니다.

CLUSTER_CHANGE_CLUSTER_RECONNECT(0x00080000)

연결이 끊긴 클러스터의 이름입니다.

CLUSTER_CHANGE_CLUSTER_STATE(0x20000000)

변경된 클러스터의 이름입니다.

CLUSTER_CHANGE_GROUP_ADDED(0x00004000)

그룹 이름입니다.

CLUSTER_CHANGE_GROUP_DELETED(0x00002000)

삭제된 그룹 이름입니다.

CLUSTER_CHANGE_GROUP_PROPERTY(0x00008000)

변경된 그룹의 이름입니다.

CLUSTER_CHANGE_GROUP_STATE(0x00001000)

변경된 그룹의 이름입니다.

CLUSTER_CHANGE_HANDLE_CLOSE(0x80000000)

닫혀 있는 개체의 이름입니다.

CLUSTER_CHANGE_NODE_ADDED(0x00000004)

노드의 이름입니다.

CLUSTER_CHANGE_NODE_DELETED(0x00000002)

삭제된 노드의 이름입니다.

CLUSTER_CHANGE_NODE_PROPERTY(0x00000008)

변경된 노드의 이름입니다.

CLUSTER_CHANGE_NODE_STATE(0x00000001)

변경된 노드의 이름입니다.

CLUSTER_CHANGE_REGISTRY_ATTRIBUTES(0x00000020)

변경된 클러스터 데이터베이스 키의 상대 이름입니다.

CLUSTER_CHANGE_REGISTRY_NAME(0x00000010)

변경된 클러스터 데이터베이스 키의 상대 이름입니다.

CLUSTER_CHANGE_REGISTRY_VALUE(0x00000040)

변경된 클러스터 데이터베이스 키의 상대 이름입니다.

CLUSTER_CHANGE_RESOURCE_ADDED(0x00000400)

리소스 이름입니다.

CLUSTER_CHANGE_RESOURCE_DELETED(0x00000200)

삭제된 리소스 이름입니다.

CLUSTER_CHANGE_RESOURCE_PROPERTY(0x00000800)

변경된 리소스의 이름입니다.

CLUSTER_CHANGE_RESOURCE_STATE(0x00000100)

변경된 리소스의 이름입니다.

CLUSTER_CHANGE_RESOURCE_TYPE_ADDED(0x00020000)

리소스 유형의 이름입니다.

CLUSTER_CHANGE_RESOURCE_TYPE_DELETED(0x00010000)

삭제된 리소스 유형의 이름입니다.

[in, out] lpcchName

문자 수로 lpszName 버퍼의 크기에 대한 포인터입니다. 입력에서 종료 NULL을 포함하여 버퍼가 보유할 수 있는 최대 문자 수를 지정합니다. 출력에서 종료 되는 NULL을 제외하고 결과 이름의 문자 수를 지정합니다.

[in, optional] dwMilliseconds

호출자가 알림을 기다리는 기간을 지정하는 선택적 시간 제한 값입니다.

반환 값

작업이 성공하면 함수는 ERROR_SUCCESS 반환합니다.

작업이 실패하면 함수는 시스템 오류 코드를 반환합니다. 가능한 값은 다음과 같습니다.

반환 코드/값 설명
ERROR_INVALID_HANDLE
6
hChange 매개 변수에 표시되는 핸들이 잘못되었거나 다른 스레드에 의해 닫혔습니다.
WAIT_TIMEOUT
258(0x102)
알림이 성공적으로 반환되기 전에 통화 시간이 초과되었습니다.
ERROR_MORE_DATA
234(0xEA)
lpszName 매개 변수가 가리키는 버퍼가 결과를 저장할 만큼 크지 않습니다. lpcchName 매개 변수는 종료되는 NULL을 제외하고 결과의 문자 수를 반환합니다.

설명

lpcchName 매개 변수는 바이트 수가 아닌 문자 수를 나타내며 반환된 크기에는 종료되는 NULL이 개수에 포함되지 않습니다. 버퍼 크기 조정에 대한 자세한 내용은 데이터 크기 규칙을 참조하세요.

알림은 비동기적이며 애플리케이션이 알림을 처리할 때의 클러스터 상태는 알림이 생성될 때의 클러스터 상태와 다를 수 있습니다.

예제

알림 포트 예제를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows Server 2008 Enterprise, Windows Server 2008 Datacenter
대상 플랫폼 Windows
헤더 clusapi.h
라이브러리 ClusAPI.lib
DLL ClusAPI.dll

추가 정보

CLUSTER_CHANGE

CloseClusterNotifyPort

클러스터 관리 함수

CreateClusterNotifyPort

RegisterClusterNotify