PLOG_EVENT_ROUTINE callback function (resapi.h)

Records an event in the cluster log. The PLOG_EVENT_ROUTINE type defines a pointer to this function.



void PlogEventRoutine(
  [in] RESOURCE_HANDLE ResourceHandle,
  [in] LOG_LEVEL LogLevel,
  [in] LPCWSTR FormatString,
       ... unnamedParam4


[in] ResourceHandle

Handle identifying the resource recording the event. The value for ResourceHandle should be the handle passed in during the Open call for this resource.

[in] LogLevel

Value enumerated by the LOG_LEVEL enumeration that represents the log level of the event and that is for information only. The following valid values are shown in order from least to most severe.


The event is informational.


The event is reporting a failure that might have happened, but it is uncertain whether a failure really did occur.


The event affects a single component, but other components are not affected and the integrity of the rest of the node is not compromised.


The event is reporting a severe failure that affects multiple components, or the integrity of the entire system is compromised or believed to be compromised.

[in] FormatString

Null-terminated Unicode string that includes the information to be recorded. This string must be in the same format as that passed to the FormatMessage function.


Return value



The LogEvent callback function is implemented by the Resource Monitor and is called by a resource DLL to report events and errors to the cluster log. Resource DLLs receive a pointer to the LogEvent callback function in the LogEvent parameter to their Startup entry-point function.

LogEvent does not write entries to the event log. To report events in the event log, a resource DLL must call the ReportEvent function.

The format of the logged message appears as follows:

ResourceTypeName ResourceName: message

ResourceTypeName is the resource type, such as "Generic Application". The specific resource name is the user-friendly name for the specific resource, and message is the message delivered by the resource DLL to the Resource Monitor.

The log entry size is limited to 500 characters.


The following example is based on code generated by the Cluster Resource Type Wizard. For additional examples, see Resource DLL Examples.

//  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,
                     L"Failed to start the specified service.\n" );

//  Message w/string argument
    (g_pfnLogEvent)( pResourceEntry->hResourceHandle,
                     L"OnlineThread: Failed to start the '%1' service.\n",
                     MY_SVCNAME );

//  Message w/multiple arguments
    (g_pfnLogEvent)( pResourceEntry->hResourceHandle,
                     L"OnlineThread: Failed to start the '%1' service. Error: %2!u!.\n",
                     nStatus );


Requirement Value
Minimum supported client None supported
Minimum supported server Windows Server 2008 Enterprise, Windows Server 2008 Datacenter
Target Platform Windows
Header resapi.h

See also




Resource DLL Callback Functions