WINBIO_PRESENCE 结构

包含有关其状态正在受到监视的个人状态的信息。

语法

typedef struct _WINBIO_PRESENCE {
  WINBIO_BIOMETRIC_TYPE      Factor;
  WINBIO_BIOMETRIC_SUBTYPE   SubFactor;
  HRESULT                    Status;
  WINBIO_REJECT_DETAIL       RejectDetail;
  WINBIO_IDENTITY            Identity;
  ULONGLONG                  TrackingId;
  WINBIO_PROTECTION_TICKET   Ticket;
  WINBIO_PRESENCE_PROPERTIES Properties;
} WINBIO_PRESENCE, *PWINBIO_PRESENCE;

成员

因素

用于监视个人状态的生物识别因素。

SubFactor

用于监视个人状态的生物识别因素的生物识别子因素限定符。

状态

个人标识过程的状态。

RejectDetail

有关识别个人失败的其他信息,包括说明如何更正失败的反馈。

Identity

确认个人后,其状态正在受到监视的个人的标识。

TrackingId

由适配器生成并唯一标识个人的整数。 只要该人停留在相机画面中,就可以保证适配器分配给特定个人的跟踪标识符是恒定的。

工作单

保留。 由适配器设置为 0。

属性

有关个人位置的特定于因素的信息。

备注

EngineAdapterIdentifyAll 函数可创建 WINBIO_PRESENCE 结构的数组,并将此数组发送到生物识别服务。 生物识别服务会使用该数组更新计算机附近的人类内部模型。

根据此更新的结果,生物识别服务可能会为具有活动状态监视器的任何客户端生成 WinBioMonitorPresence 函数的 WINBIO_ASYNC_RESULT 结构。 该结构的 WINBIO_ASYNC_RESULT.Operation 成员包含 WINBIO_OPERATION_MONITOR_PRESENCEWINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员则提供了有关个人状态的其他信息。

当通过引擎适配器与特定跟踪标识符相关联的个人首次出现在输入流中时,生物识别服务将生成客户端 WINBIO_ASYNC_RESULT 结构,其中 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_ARRIVAL。 此结构会在任何其他 WINBIO_ASYNC_RESULT 结构(其中 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.PresenceArray 包括与 WINBIO_PRESENCE.TrackingId 值相同的 WINBIO_PRESENCE 结构)之前发送到应用程序回调函数或应用程序消息队列。。

具有 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.PresenceArray 成员的 WINBIO_PRESENCE 结构数组中值的以下组合可指示个人状态方面特定种类的更改。

  • 当个人出现在相机画面中,但引擎仍在尝试标识该个人时,WINBIO_PRESENCE 结构的成员将具有下表中的值。

    成员
    TrackingId 向引擎标识个人的整数。
    状态 S_OK
    Identity.Type WINBIO_ID_TYPE_NULL

    在这种情况下,生物识别服务会延长个人到期时间,并且不会为跟踪标识符生成 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_RECOGNIZE 的客户端 WINBIO_ASYNC_RESULT 结构。

    在一个或多个 WINBIO_ASYNC_RESULT 结构包含 Status 成员为 WINBIO_E_BAD_CAPTUREWINBIO_PRESENCE 的结构之后,WINBIO_ASYNC_RESULT 结构首次包括 WINBIO_PRESENCE 结构(其中 Status 成员为 S_OKIdentity.TypeWINBIO_ID_TYPE_NULL)时,状态监视器将为跟踪标识符生成单个 WINBIO_ASYNC_RESULT 结构,其中 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_TRACK。 此 WINBIO_ASYNC_RESULT 结构(其中 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_TRACK)会通知客户端导致 WINBIO_E_BAD_CAPTURE 错误的问题已解决。 有关 WINBIO_PRESENCE 结构的 Status 成员为 WINBIO_E_BAD_CAPTURE 情况的详细信息,请参阅有关引擎适配器如何向用户提供反馈以稍后在“备注”中更正识别失败的说明。

  • 当个人出现在相机画面中,但引擎仍在尝试识别个人,并希望向用户提供有关如何更正识别失败的反馈时,WINBIO_PRESENCE 结构的成员会具有下表中的值。

    成员
    TrackingId 向引擎标识个人的整数。
    状态 WINBIO_E_BAD_CAPTURE
    Identity.Type WINBIO_ID_TYPE_NULL
    如果 Factor 的值为 WINBIO_TYPE_FACIAL_FEATURES,则为 Properties.FacialFeatures.BoundingBox 相机画面中个人人脸的位置。
    如果 Factor 的值为 WINBIO_TYPE_IRIS,则为 Properties.Iris.BoundingBox 相机画面内个人虹膜的位置。

    在这种情况下,生物识别服务会延长个人到期时间,并且会为跟踪标识符生成 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_RECOGNIZEWINBIO_ASYNC_RESULT 结构。

  • 如果个人出现在相机画面中,并且引擎适配器确定了个人标识,则 WINBIO_PRESENCE 结构的成员将具有下表中的值。

    成员
    TrackingId 向引擎标识个人的整数。
    状态 S_OK
    Identity.Type WINBIO_ID_TYPE_SID
    Identity.Value.AccountSid 个人的安全标识符 (SID)。

    在这种情况下,生物识别服务会将跟踪标识符与个人的 SID 相关联,并且为跟踪标识符生成 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_RECOGNIZE 的客户端 WINBIO_ASYNC_RESULT 结构。 除非个人离开相机画面,否则生物识别服务不会为跟踪标识符生成额外的客户端 WINBIO_ASYNC_RESULT 结构。

  • 如果个人出现在相机画面中,但引擎适配器确定个人并未注册,则 WINBIO_PRESENCE 结构的成员将具有下表中的值。

    成员
    TrackingId 向引擎标识个人的整数。
    状态 WINBIO_E_UNKNOWN_ID
    Identity.Type WINBIO_ID_TYPE_NULL

    在这种情况下,生物识别服务会将个人跟踪标识符与未知标识相关联,并且为跟踪标识符生成 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_RECOGNIZE 的客户端 WINBIO_ASYNC_RESULT 结构。 除非个人离开相机画面,否则生物识别服务不会为跟踪标识符生成额外的客户端 WINBIO_ASYNC_RESULT 结构。

当通过引擎适配器与特定跟踪标识符关联的个人离开相机画面并停止显示在 EngineAdapterIdentifyAll 函数返回的值中时,跟踪标识符最终会过期。 如果跟踪标识符过期,生物识别服务将生成客户端 WINBIO_ASYNC_RESULT 结构,其中 WINBIO_ASYNC_RESULT.Parameters.MonitorPresence.ChangeType 成员为 WINBIO_CHANGE_TYPE_DEPART。 引擎适配器可以通过在 EngineAdapterIdentifyAll 返回的数组中包含 WINBIO_PRESENCE 结构(其中 WINBIO_PRESENCE.Status 成员为 S_OKWINBIO_PRESENCE.Identity.Type 成员为 WINBIO_ID_TYPE_NULL)来防止生物识别服务生成具有 WINBIO_CHANGE_TYPE_DEPART 值的此结构,如上述“备注”中所述。 此操作会延长跟踪标识符的到期时间,而不会导致任何客户端活动。

要求

要求
最低受支持的客户端
Windows 10 [仅限桌面应用]
最低受支持的服务器
Windows Server 2016 [仅限桌面应用]
标头
Winbio_types.h(包括适用于客户端应用程序的 Winbio.h 或适用于适配器的 Winbio_adapters.h)

另请参阅

WINBIO_ASYNC_RESULT

WinBioMonitorPresence

EngineAdapterIdentifyAll