다음을 통해 공유


PSET_RESOURCE_STATUS_ROUTINE 콜백 함수(resapi.h)

리소스의 상태 업데이트하기 위해 호출됩니다. PSET_RESOURCE_STATUS_ROUTINE 형식은 이 함수에 대한 포인터를 정의합니다.

구문

PSET_RESOURCE_STATUS_ROUTINE PsetResourceStatusRoutine;

DWORD PsetResourceStatusRoutine(
  [in] RESOURCE_HANDLE ResourceHandle,
  [in] PRESOURCE_STATUS ResourceStatus
)
{...}

매개 변수

[in] ResourceHandle

업데이트할 리소스 식별을 처리합니다. ResourceHandle 매개 변수는 이 리소스의 Open 진입점에서 ResourceHandle 매개 변수에 사용되는 것과 동일한 핸들을 포함해야 합니다.

[in] ResourceStatus

리소스 상태에 대한 정보를 포함하는 RESOURCE_STATUS 구조체에 대한 포인터입니다.

반환 값

SetResourceStatusRESOURCE_EXIT_STATE 열거형에서 열거된 다음 값 중 하나를 반환합니다.

반환 코드/값 설명
ResourceExitStateContinue
0
리소스가 종료되지 않았습니다. 작업자 스레드는 리소스에 대한 온라인오프라인 작업을 계속할 수 있습니다.
ResourceExitStateTerminate
1
리소스가 종료되었습니다. 호출자는 온라인 또는 오프라인 작업을 종료하고 리소스에 할당된 모든 작업자 스레드를 즉시 종료해야 합니다.

설명

리소스 DLLSetResourceStatus 콜백 함수를 호출하여 온라인 또는 오프라인 진입점 함수가 ERROR_IO_PENDING 반환한 후 리소스의 상태 업데이트합니다. 다른 시간에 호출해서는 안됩니다. SetResourceStatus 함수에 대한 포인터는 SetResourceStatus 매개 변수에 리소스의 시작 구현에 전달됩니다.

SetResourceStatus리소스 모니터 에 의해 구현되며 SetServiceStatus 함수와 유사합니다.

ERROR_IO_PENDING 반환한 후 필요할 때마다 리소스의 현재 상태를 업데이트합니다. 리소스가 보류 중인 상태 중 하나인 경우 SetResourceStatus 호출을 시작하기 전에 RESOURCE_STATUS 구조체의 CheckPointWaitHint 멤버에 대한 값을 증가시키고 ResourceState 멤버를 ClusterResourceOnlinePending 또는 ClusterResourceOfflinePending으로 설정합니다. 다음 상황 중 하나가 발생할 때까지 SetResourceStatus 를 호출합니다.

  • 리소스는 ClusterResourceOnline 또는 ClusterResourceOffline 상태에 배치됩니다.
  • 리소스의 PendingTimeout 속성에 저장된 시간 제한을 초과했습니다.
리소스 모니터는 온라인 또는 오프라인ERROR_IO_PENDING 반환할 때마다 리소스 상태를 자동으로 적절한 보류 상태로 설정하기 때문에 SetResourceStatus를 호출하여 리소스 상태를 보류 중 상태로 설정할 필요가 없습니다.

요구 사항

   
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows Server 2008 Enterprise, Windows Server 2008 Datacenter
대상 플랫폼 Windows
헤더 resapi.h

추가 정보

ClusWorkerTerminate

오프라인

온라인

열기

RESOURCE_EXIT_STATE

RESOURCE_STATUS

리소스 DLL 콜백 함수

SetServiceStatus

Startup 클래스

Terminate