Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
To participate in error source control, a PSHED plug-in must implement the following callback functions:
The following code example shows how to implement these callback functions.
//
// The PSHED plug-in's SetErrorSourceInfo callback function
//
NTSTATUS
SetErrorSourceInfo(
IN OUT PVOID PluginContext,
IN PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource
)
{
// Check if the plug-in supports configuring
// the specified error source.
if (...)
{
// Save the new configuration data for the error
// source in nonvolatile storage and apply the
// configuration changes to the error source such
// that they will become effective after the
// system is restarted.
...
// If successful, return success status
if (...)
{
return STATUS_SUCCESS;
}
// Failed to configure the error source
else
{
return STATUS_UNSUCCESSFUL;
}
}
// Not supported by the plug-in
else
{
return STATUS_NOT_SUPPORTED;
}
}
//
// The PSHED plug-in's EnableErrorSource callback function
//
NTSTATUS
EnableErrorSource(
IN OUT PVOID PluginContext,
IN PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource
)
{
// Check if the plug-in supports enabling
// the specified error source.
if (...)
{
// Enable the error source
...
// If successful
if (...)
{
// Return success status
return STATUS_SUCCESS;
}
// Failed to enable the error source
else
{
return STATUS_UNSUCCESSFUL;
}
}
// Not supported by the plug-in
else
{
return STATUS_NOT_SUPPORTED;
}
}
//
// The PSHED plug-in's DisableErrorSource callback function
//
NTSTATUS
DisableErrorSource(
IN OUT PVOID PluginContext,
IN PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource
)
{
// Check if the plug-in supports disabling
// the specified error source.
if (...)
{
// Disable the error source
...
// If successful
if (...)
{
// Return success status
return STATUS_SUCCESS;
}
// Failed to disable the error source
else
{
return STATUS_UNSUCCESSFUL;
}
}
// Not supported by the plug-in
else
{
return STATUS_NOT_SUPPORTED;
}
}
A PSHED plug-in that participates in error source control must specify the PshedFAErrorSourceControl flag when it registers itself with the operating system.