PshedRegisterPlugin 函数 (ntddk.h)
PshedRegisterPlugin 函数向 PSHED 注册 PSHED 插件。
语法
NTPSHEDAPI NTSTATUS PshedRegisterPlugin(
[in, out] PWHEA_PSHED_PLUGIN_REGISTRATION_PACKET Packet
);
参数
[in, out] Packet
指向已初始化 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 结构的指针,该结构描述 PSHED 插件的注册信息。
返回值
PshedRegisterPlugin 返回以下 NTSTATUS 代码之一:
返回代码 | 说明 |
---|---|
|
已成功注册 PSHED 插件。 |
|
提供的注册数据包中的数据无效。 |
注解
PSHED 插件调用 PshedRegisterPlugin 函数将自身注册到 PSHED。 PSHED 插件通常从其 DriverEntry 函数或其 AddDevice 函数内部调用此函数。
从 Windows 10 版本 1903 (WDK 10 版本 18362) 开始,可以使用 V2 PSHED-Plugin 接口,通过调用 PshedUnregisterPlugin 函数在正在运行的系统上删除和更新插件。 由于可以取消注册,V2 插件无法在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 结构的 FunctionalAreaMask 成员中指定 PshedFADiscovery 标志 (发现功能区域) 。 有关注册插件的信息,请参阅注册 PSHED 插件。 对于 V1 插件,如果尝试注销,可能会进行 bug 检查。 建议尽可能使用 V2 插件,这是当前默认值。
若要注册 V1 与 V2 插件,请使用正确的结构。 V1 的WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V1 和 V2 的WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 。
V2 插件仍可以添加错误源,如在 Windows 10 上使用 WHEA 中所述,或通过调用 WheaAddErrorSource 和 WheaRemoveErrorSource。
插件可以通过指定 WHEA_PLUGIN_REGISTRATION_PACKET_V1 作为其 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET_V2 结构的版本来继续使用发现功能区域。
在 V1 和 V2 插件上调用所有回调,最低 IRQL 为 DISPATCH_LEVEL。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Server 2008、Windows Vista SP1 及更高版本的 Windows 中受支持。 |
目标平台 | 通用 |
标头 | ntddk.h (包括 Ntddk.h) |
Library | Pshed.lib |
DLL | Pshed.dll |
IRQL | <=DISPATCH_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) 、 PowerIrpDDis (wdm) |