Поделиться через


функция обратного вызова 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 должен содержать тот же дескриптор, который используется для параметра ResourceHandle в точке входа Open для этого ресурса.

[in] ResourceStatus

Указатель на RESOURCE_STATUS структуру, содержащую сведения о состоянии ресурса.

Возвращаемое значение

SetResourceStatus возвращает одно из следующих значений, перечисляемых из перечисления RESOURCE_EXIT_STATE .

Возвращаемый код/значение Описание
ResourceExitStateContinue
0
Ресурс не был завершен. Рабочие потоки могут продолжать операции "в сети" и "вне сети" для ресурса.
ResourceExitStateTerminate
1
Ресурс был прерван. Вызывающие абоненты должны завершить операции "в сети" или "вне сети" и немедленно завершить все рабочие потоки, назначенные ресурсу.

Комментарии

Библиотеки DLL ресурсов вызывают функцию обратного вызова SetResourceStatus , чтобы обновить состояние ресурса после того, как их функция точки входа в сети или автономном режиме вернула ERROR_IO_PENDING. Он не должен вызываться в любое другое время. Указатель на функцию SetResourceStatus передается в параметре SetResourceStatus в реализацию Startup ресурса.

SetResourceStatus реализуется монитором ресурсов и похож на функцию SetServiceStatus .

При необходимости обновляйте текущее состояние ресурса после возврата ERROR_IO_PENDING. Если ресурс находится в одном из ожидающих состояний, увеличьте значения элементов CheckPoint и WaitHintструктуры RESOURCE_STATUS и задайте для элемента ResourceState значение ClusterResourceOnlinePending или ClusterResourceOfflinePending , прежде чем приступать к вызову SetResourceStatus. Вызывайте Метод SetResourceStatus , пока не возникнет одна из следующих ситуаций:

  • Ресурс помещается в состояние ClusterResourceOnline или ClusterResourceOffline .
  • Превышено ограничение времени, хранящееся в свойстве PendingTimeout ресурса.
Нет необходимости вызывать SetResourceStatus , чтобы установить состояние ресурса в состояние ожидания, так как монитор ресурсов автоматически устанавливает для него соответствующее состояние ожидания всякий раз, когда в сети или в автономном режиме возвращается ERROR_IO_PENDING.

Требования

   
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter
Целевая платформа Windows
Header resapi.h

См. также раздел

ClusWorkerTerminate

В отключенном режиме

Справка в Интернете

Открыть

RESOURCE_EXIT_STATE

RESOURCE_STATUS

Функции обратного вызова БИБЛИОТЕКи РЕСУРСОВ

SetServiceStatus

Запуск

Завершение