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


функция обратного вызова 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

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

LOG_LEVEL

Открыть

ReportEvent

Функции обратного вызова БИБЛИОТЕКи ресурсов

Запуск