ISSONotification.ReceiveNotification 方法

从 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 返回的事件句柄来执行自己的等待,并与其他事件共享。

如果在调用 ShutdownAdapterReceiveNotification 正在等待,则 ReceiveNotification 将返回 SHUTDOWN 通知作为最后一个通知。 SHUTDOWN 通知抢先于其他所有未决通知。

多个线程可能针对同一适配器名称调用 ReceiveNotification 。 在这种情况下,请求在 ENTSSO 服务上是单线程的,并且只有一个 ReceiveNotification 使用有效信息完成。 这些线程将随下一通知完成或生成 NONE。 原因在于每一个线程都在等待同一事件。

要求

平台:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 11 和 Windows 10

另请参阅

ISSONotification 接口 (COM)
ISSONotification 成员
使用企业单一登录编程