функция обратного вызова 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 .
Возвращаемый код/значение | Описание |
---|---|
|
Ресурс не был завершен. Рабочие потоки могут продолжать операции "в сети" и "вне сети" для ресурса. |
|
Ресурс был прерван. Вызывающие абоненты должны завершить операции "в сети" или "вне сети" и немедленно завершить все рабочие потоки, назначенные ресурсу. |
Комментарии
Библиотеки 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 ресурса.
Требования
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter |
Целевая платформа | Windows |
Header | resapi.h |