WinBioAsyncOpenFramework 函数 (winbio.h)

打开生物识别框架的句柄。 从 Windows 10 版本 1607 开始,此函数可用于移动映像。 可以使用此句柄异步枚举生物识别单元、数据库和服务提供商,并在生物识别单元附加到计算机或删除时接收异步通知。

Syntax

HRESULT WinBioAsyncOpenFramework(
  [in]           WINBIO_ASYNC_NOTIFICATION_METHOD  NotificationMethod,
  [in, optional] HWND                              TargetWindow,
  [in, optional] UINT                              MessageCode,
  [in, optional] PWINBIO_ASYNC_COMPLETION_CALLBACK CallbackRoutine,
  [in, optional] PVOID                             UserData,
  [in]           BOOL                              AsynchronousOpen,
  [out]          WINBIO_FRAMEWORK_HANDLE           *FrameworkHandle
);

参数

[in] NotificationMethod

指定此框架会话中异步作的完成通知如何传送到客户端应用程序。 这必须是以下值之一。

价值 Meaning
WINBIO_ASYNC_NOTIFY_CALLBACK
框架调用应用程序定义的回调函数。
WINBIO_ASYNC_NOTIFY_MESSAGE
框架将窗口消息发布到应用程序的消息队列。

[in, optional] TargetWindow

将接收完成通知的窗口的句柄。 除非 NotificationMethod 参数设置为 WINBIO_ASYNC_NOTIFY_MESSAGE,否则将忽略此值。

[in, optional] MessageCode

框架必须发送的窗口消息代码以表示完成通知。 除非 NotificationMethod 参数设置为 WINBIO_ASYNC_NOTIFY_MESSAGE,否则将忽略此值。 该值必须在 WM_APP (0x8000)范围内才能0xBFFF。

Windows 生物识别框架将消息的 LPARAM 值设置为包含作结果 的WINBIO_ASYNC_RESULT 结构地址。 使用完结构后,必须调用 WinBioFree 释放结构。

[in, optional] CallbackRoutine

要为完成通知调用的回调例程的地址。 除非 NotificationMethod 参数设置为 WINBIO_ASYNC_NOTIFY_CALLBACK,否则将忽略此值。

[in, optional] UserData

调用方提供的缓冲区的地址。 缓冲区不会由框架或生物识别单元修改。 它在 WINBIO_ASYNC_RESULT 结构中返回。 应用程序可以使用数据来帮助确定在收到完成通知时要执行的作,或维护有关所请求作的其他信息。

[in] AsynchronousOpen

指定是否在打开框架会话之前阻止。 指定 FALSE 会导致进程阻止。 指定 TRUE 会导致会话以异步方式打开。

如果指定 FALSE 以同步打开框架会话,则 HRESULT 返回值中的此函数将成功或失败直接返回到调用方。 如果会话成功打开,则应用程序收到的第一个异步完成事件将用于在框架打开后请求的异步作。

如果指定 TRUE 以异步方式打开框架会话,则收到的第一个异步完成通知将用于打开框架。 如果 NotificationMethod 参数设置为WINBIO_ASYNC_NOTIFY_CALLBACK,作结果将传递到 CallbackRoutine 参数指定的回调函数中的WINBIO_ASYNC_RESULT结构。 如果 NotificationMethod 参数设置为WINBIO_ASYNC_NOTIFY_MESSAGE,作结果将传递到窗口消息的 LPARAM 字段指向的WINBIO_ASYNC_RESULT结构。

[out] FrameworkHandle

如果函数不成功,此参数将为 NULL

如果会话以同步方式成功打开,此参数将包含指向会话句柄的指针。

如果指定以异步方式打开会话,此方法将立即返回,会话句柄将为 NULL,并且必须检查 WINBIO_ASYNC_RESULT 结构以确定会话是否已成功打开。

返回值

如果函数成功,它将返回 S_OK。 如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括但不限于下表中的值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码 Description
E_OUTOFMEMORY
没有足够的内存可用于创建框架会话。
E_INVALIDARG
如果将通知方法设置为WINBIO_ASYNC_NOTIFY_MESSAGE则 TargetWindow 参数不能为 NULLHWND_BROADCAST,MessageCode 参数不能为零(0)。
E_POINTER
必须设置 FrameworkHandle 参数和 AsynchronousOpen 参数。

如果将通知方法设置为 WINBIO_ASYNC_NOTIFY_CALLBACK,则还必须在 CallbackRoutine 参数中指定回调函数的地址。

注解

WinBioAsyncOpenFramework 函数返回的框架句柄可用于为以下函数生成异步完成通知:

SyncOpen 参数仅确定打开的作是否会阻止。 此参数不会影响使用会话句柄的后续调用的完成行为。

如果将 SyncOpen 参数设置为 TRUE,此函数将在执行参数的初始验证后立即返回 S_OK 。 检测到的任何超出该点的错误都将使用 NotificationMethod 参数指定的方法报告给调用方。 也就是说,成功的返回值仅指示 WinBioAsyncOpenFramework 参数正常,而不是打开作成功。 若要确定打开的作是否成功,必须检查 WINBIO_ASYNC_RESULT 结构。

要求

Requirement 价值
最低支持的客户端 Windows 8 [仅限桌面应用]
支持的最低服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows操作系统
Header winbio.h (包括 Winbio.h)
Library Winbio.lib
DLL Winbio.dll

另请参阅

WinBioAsyncOpenSession