PIBIO_ENGINE_IDENTIFY_ALL_FN回调函数 (winbio_adapter.h)

由 Windows 生物识别框架调用,以确定当前处于相机帧中的任何人的身份。

语法

PIBIO_ENGINE_IDENTIFY_ALL_FN PibioEngineIdentifyAllFn;

HRESULT PibioEngineIdentifyAllFn(
  [in, out] PWINBIO_PIPELINE Pipeline,
  [out]     PSIZE_T PresenceCount,
  [out]     PWINBIO_PRESENCE *PresenceArray
)
{...}

参数

[in, out] Pipeline

指向与执行操作的生物识别单元关联的 WINBIO_PIPELINE 结构的指针。

[out] PresenceCount

接收函数检测到的状态数的变量的地址。

[out] PresenceArray

接收指向 WINBIO_PRESENCE 元素数组的指针的变量的地址。

返回值

如果函数成功,则返回 S_OK。 如果函数失败,它必须返回以下 HRESULT 值之一来指示错误。

返回代码 说明
E_some_error
任何错误代码都将导致生物识别服务记录错误并忽略相机帧。

注解

生物识别服务在将新的数据帧发送到引擎适配器后调用此方法。

处理数据帧后,此函数应为数据帧中检测到的每个状态返回一个 WINBIO_PRESENCE 元素。

如果 EngineAdapterIdentifyAll 函数在帧中找不到任何人脸,它将返回S_OKHRESULT,并将 PresenceCountPresenceArray 返回参数分别设置为零和 NULL。 换句话说,不包含任何人类存在的帧不是错误条件。

EngineAdapterIdentifyAll 应返回除S_OK以外的 HRESULT 的唯一时间是,如果它不希望个人简历服务使用该帧来更新状态监视器状态。 这应该很少发生。 引擎适配器负责分配它在 PresenceArray 参数中返回的WINBIO_PRESENCE元素数组。 它必须使用 HeapAlloc 函数从进程堆分配此内存。 创建数组后,它将成为 Windows 生物识别框架的 属性。 由于框架在使用它后会解除分配此内存,因此引擎适配器不得尝试解除分配数组或保存指向它的指针。 不遵守此规则将导致堆损坏,并可能导致生物识别服务崩溃。

PresenceArray 中各个WINBIO_PRESENCE项的值将确定为客户端应用程序生成的事件。 有关详细信息,请参阅 WINBIO_PRESENCE 结构的讨论。

要求

要求
最低受支持的客户端 Windows 10 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 winbio_adapter.h (包括 Winbio_adapter.h)