функция обратного вызова PLOG_EVENT_ROUTINE (resapi.h)
Записывает событие в журнал кластера. Тип PLOG_EVENT_ROUTINE определяет указатель на эту функцию.
Синтаксис
PLOG_EVENT_ROUTINE PlogEventRoutine;
void PlogEventRoutine(
[in] RESOURCE_HANDLE ResourceHandle,
[in] LOG_LEVEL LogLevel,
[in] LPCWSTR FormatString,
... unnamedParam4
)
{...}
Параметры
[in] ResourceHandle
Дескриптор идентификации ресурса, записывающего событие. Значением resourceHandle должен быть дескриптор, передаваемый во время вызова Open для этого ресурса.
[in] LogLevel
Значение, перечисленное перечислением LOG_LEVEL , которое представляет уровень журнала события и предназначено только для получения сведений. Следующие допустимые значения отображаются в порядке от наименьшего до наиболее строгого.
LOG_INFORMATION (0)
Событие является информационным.
LOG_WARNING (1)
Событие сообщает о сбое, который мог произойти, но неясно, действительно ли произошел сбой.
LOG_ERROR (2)
Событие влияет на один компонент, но другие компоненты не затрагиваются, и целостность остальной части узла не скомпрометирована.
LOG_SEVERE (3)
Событие сообщает о серьезном сбое, который влияет на несколько компонентов, или целостность всей системы скомпрометирована или считается скомпрометированной.
[in] FormatString
Строка Юникода, завершающаяся значением NULL, которая содержит записываемые сведения. Эта строка должна быть в том же формате, что и в функции FormatMessage .
unnamedParam4
Возвращаемое значение
None
Remarks
Функция обратного вызова LogEvent реализуется монитором ресурсов и вызывается библиотекой DLL ресурса для передачи событий и ошибок в журнал кластера. Библиотеки DLL ресурсов получают указатель на функцию обратного вызова LogEvent в параметре LogEvent на функцию точки входа запуска .
LogEvent не записывает записи в журнал событий. Чтобы сообщить о событиях в журнале событий, библиотека DLL ресурсов должна вызвать функцию ReportEvent .
Формат сообщения, записанного в журнал, выглядит следующим образом:
ResourceTypeName ResourceName: message
ResourceTypeName — это тип ресурса, например "Универсальное приложение". Конкретное имя ресурса — это понятное имя для конкретного ресурса, а сообщение — это сообщение, доставленное библиотекой DLL ресурса в монитор ресурсов.
Размер записи журнала ограничен 500 символами.
Примеры
Следующий пример основан на коде, созданном мастером типов ресурсов кластера. Дополнительные примеры см. в разделе Примеры библиотек DLL ресурсов.
// The following parameters are assumed to be already defined:
// g_pfnLogEvent Stores the address of the LogEvent callback
// function passed to the DLL in the
// Startup entry point.
// pResourceEntry Stores resource instance data.
// MY_SVCNAME Stores the name of a service.
// nStatus Result
// Log the fact that an attempt to start a service has failed.
// Basic message
(g_pfnLogEvent)( pResourceEntry->hResourceHandle,
LOG_ERROR,
L"Failed to start the specified service.\n" );
// Message w/string argument
(g_pfnLogEvent)( pResourceEntry->hResourceHandle,
LOG_ERROR,
L"OnlineThread: Failed to start the '%1' service.\n",
MY_SVCNAME );
// Message w/multiple arguments
(g_pfnLogEvent)( pResourceEntry->hResourceHandle,
LOG_ERROR,
L"OnlineThread: Failed to start the '%1' service. Error: %2!u!.\n",
MY_SVCNAME,
nStatus );
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter |
Целевая платформа | Windows |
Header | resapi.h |