从 ENTSSO 系统接收通知,如密码更改。
语法
HRESULT ReceiveNotification(
ULONG ulNotificationFlagsIn,
SReceiveNotification* pReceiveNotification,
GUID* pguidTrackingId
);
参数
bstrAdapterName
[in] 唯一的适配器名称。
ulNotificationFlagsIn
[in] 用于控制此通知的通知标志,来自 SSO_NOTIFICATION_FLAG 枚举。
pReceiveNotification
[in] 已接收通知的指针。
pguidTrackingId
[out]跟踪 ID。 ENTSSO 系统将生成跟踪 ID 并将其返回到调用方。 该跟踪 ID 用于审核目的,还可供适配器将响应关联到请求。 如果适配器不要求该跟踪 ID,则此参数可为 NULL。
返回值
此方法返回一个 HRESULT,指示它是否正确完成。 有关详细信息,请参阅“错误值”部分。
错误值
此方法返回一个 HRESULT,它包含下表中的值之一。
| 值 | 说明 |
|---|---|
| S_OK | 方法成功。 |
| E_ACCESSDENIED | 访问被拒绝。 |
| ENTSSO_E_NO_SERVER | 无法联系 ENTSSO 服务器。 检查 ENTSSO 服务是否正在运行。 |
| ENTSSO_E_NO_NOTIFICATIONS | 没有要接收的通知。 |
| ENTSSO_E_WRONG_STATE | 调用了此方法,但状态有误。 |
注解
可以使用 ReceiveNotification 从 ENTSSO 系统接收密码更改和其他通知。
可以使用或不带 WAIT 标志调用 ReceiveNotification 。 如果指定 WAIT 标志, 则 ReceiveNotification 将阻止,直到通知可用。 通过这样做,你可以确定是否要专用线程来接收来自 ENTSSO 服务的通知,或者是否要使用从 InitializeAdapter 返回的事件句柄来执行自己的等待,并与其他事件共享。
如果在调用 ShutdownAdapter 时 ReceiveNotification 正在等待,则 ReceiveNotification 将返回 SHUTDOWN 通知作为最后一个通知。 SHUTDOWN 通知抢先于其他所有未决通知。
多个线程可能针对同一适配器名称调用 ReceiveNotification 。 在这种情况下,请求在 ENTSSO 服务上是单线程的,并且只有一个 ReceiveNotification 使用有效信息完成。 这些线程将随下一通知完成或生成 NONE。 原因在于每一个线程都在等待同一事件。
要求
平台:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 11 和 Windows 10