PshedRegisterPlugin function (ntddk.h)

The PshedRegisterPlugin function registers a PSHED plug-in with the PSHED.

Syntax

NTPSHEDAPI NTSTATUS PshedRegisterPlugin(
  [in, out] PWHEA_PSHED_PLUGIN_REGISTRATION_PACKET Packet
);

Parameters

[in, out] Packet

A pointer to an initialized WHEA_PSHED_PLUGIN_REGISTRATION_PACKET structure that describes the PSHED plug-in's registration information.

Return value

PshedRegisterPlugin returns one of the following NTSTATUS codes:

Return code Description
STATUS_SUCCESS
The PSHED plug-in was successfully registered.
STATUS_INVALID_PARAMETER
The data in the supplied registration packet is invalid.

Remarks

A PSHED plug-in calls the PshedRegisterPlugin function to register itself with the PSHED. A PSHED plug-in typically calls this function from within either its DriverEntry function or its AddDevice function.

Starting in Windows 10, version 1903 (WDK 10 version 18362), a V2 of the PSHED-Plugin interfaces is available that allows a plugin to be removed and updated on a running system by calling the PshedUnregisterPlugin function. Because they can be unregistered, V2 plugins cannot specify the PshedFADiscovery flag (discovery functional area) in the FunctionalAreaMask member of the WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 structure. For info about registering a plug-in, see Registering a PSHED Plug-In. For a V1 plugin, if you try to unregister, a bugcheck may occur. It is recommended that you use a V2 plugin if possible, which is the current default.

To register a V1 vs a V2 plugin, use the correct struct. WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V1 for V1 and WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 for V2.

A V2 plugin can still add error sources as described in Using WHEA on Windows 10, or by calling WheaAddErrorSource and WheaRemoveErrorSource.

A plugin may continue to use the discovery functional area by specifying WHEA_PLUGIN_REGISTRATION_PACKET_V1 as the version of its WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 structure.

All callbacks, on both V1 and V2 plugins, are called at a minimum IRQL of DISPATCH_LEVEL.

Requirements

   
Minimum supported client Supported in Windows Server 2008, Windows Vista SP1, and later versions of Windows.
Target Platform Universal
Header ntddk.h (include Ntddk.h)
Library Pshed.lib
DLL Pshed.dll
IRQL <=DISPATCH_LEVEL
DDI compliance rules HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

See also

AddDevice

DriverEntry

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET