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 구조체에 대한 포인터입니다.
반환 값
SetResourceStatus 는 RESOURCE_EXIT_STATE 열거형에서 열거된 다음 값 중 하나를 반환합니다.
반환 코드/값 | 설명 |
---|---|
|
리소스가 종료되지 않았습니다. 작업자 스레드는 리소스에 대한 온라인 및 오프라인 작업을 계속할 수 있습니다. |
|
리소스가 종료되었습니다. 호출자는 온라인 또는 오프라인 작업을 종료하고 리소스에 할당된 모든 작업자 스레드를 즉시 종료해야 합니다. |
설명
리소스 DLL은 SetResourceStatus 콜백 함수를 호출하여 온라인 또는 오프라인 진입점 함수가 ERROR_IO_PENDING 반환한 후 리소스의 상태 업데이트합니다. 다른 시간에 호출해서는 안됩니다. SetResourceStatus 함수에 대한 포인터는 SetResourceStatus 매개 변수에 리소스의 시작 구현에 전달됩니다.
SetResourceStatus 는 리소스 모니터 에 의해 구현되며 SetServiceStatus 함수와 유사합니다.
ERROR_IO_PENDING 반환한 후 필요할 때마다 리소스의 현재 상태를 업데이트합니다. 리소스가 보류 중인 상태 중 하나인 경우 SetResourceStatus 호출을 시작하기 전에 RESOURCE_STATUS 구조체의 CheckPoint 및 WaitHint 멤버에 대한 값을 증가시키고 ResourceState 멤버를 ClusterResourceOnlinePending 또는 ClusterResourceOfflinePending으로 설정합니다. 다음 상황 중 하나가 발생할 때까지 SetResourceStatus 를 호출합니다.
- 리소스는 ClusterResourceOnline 또는 ClusterResourceOffline 상태에 배치됩니다.
- 리소스의 PendingTimeout 속성에 저장된 시간 제한을 초과했습니다.
요구 사항
지원되는 최소 클라이언트 | 지원되는 버전 없음 |
지원되는 최소 서버 | Windows Server 2008 Enterprise, Windows Server 2008 Datacenter |
대상 플랫폼 | Windows |
헤더 | resapi.h |