WinBioSetProperty 函数 (winbio.h)

设置与生物识别会话、单位、模板或帐户关联的标准属性的值。 从 Windows 10 版本 1607 开始,此函数可用于移动映像。

语法

HRESULT WinBioSetProperty(
  [in]           WINBIO_SESSION_HANDLE    SessionHandle,
  [in]           WINBIO_PROPERTY_TYPE     PropertyType,
  [in]           WINBIO_PROPERTY_ID       PropertyId,
  [in, optional] WINBIO_UNIT_ID           UnitId,
  [in, optional] WINBIO_IDENTITY          *Identity,
  [in, optional] WINBIO_BIOMETRIC_SUBTYPE SubFactor,
  [in]           PVOID                    PropertyBuffer,
  [in]           SIZE_T                   PropertyBufferSize
);

参数

[in] SessionHandle

标识打开的生物识别会话 的WINBIO_SESSION_HANDLE 值。 通过调用 WinBioOpenSession 打开同步会话句柄。 通过调用 WinBioAsyncOpenSession 打开异步会话句柄。

[in] PropertyType

WINBIO_PROPERTY_TYPE值,该值指定要设置的属性的类型。 目前,必须 WINBIO_PROPERTY_TYPE_ACCOUNT

[in] PropertyId

一个WINBIO_PROPERTY_ID值,该值指定要设置的属性。 目前,必须 WINBIO_PROPERTY_ANTI_SPOOF_POLICY。 所有其他属性都是只读的。

[in, optional] UnitId

标识生物识别单元 的WINBIO_UNIT_ID 值。 对于 WINBIO_PROPERTY_ANTI_SPOOF_POLICY 属性,此值必须为 0。

[in, optional] Identity

WINBIO_IDENTITY结构的地址,该结构指定要为其设置属性的帐户。

[in, optional] SubFactor

保留。 这必须 WINBIO_SUBTYPE_NO_INFORMATION

[in] PropertyBuffer

指向 结构的指针,该结构指定属性的新值。 此值不能为 NULL。 若要设置 WINBIO_PROPERTY_ANTI_SPOOF_POLICY 属性,结构必须是 WINBIO_ANTI_SPOOF_POLICY 结构。

[in] PropertyBufferSize

PropertyBuffer 参数指向的结构的大小(以字节为单位)。 此值不能为 0。

返回值

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

返回代码 说明
E_HANDLE
SessionHandle 参数指定的会话句柄无效。
E_POINTER
IdentityPropertyBuffer 参数不能为 NULL
E_INVALIDARG
PropertyTypePropertyIdPropertyBufferSize 参数不能为 0。
WINBIO_E_INVALID_PROPERTY_TYPE
PropertyType 参数的值不正确。
WINBIO_E_INVALID_PROPERTY_ID
PropertyId 参数的值不正确。
WINBIO_E_LOCK_VIOLATION
调用方尝试设置驻留在锁定区域内的属性。
WINBIO_E_UNSUPPORTED_PROPERTY
对象不支持指定的属性。
WINBIO_E_ENROLLMENT_IN_PROGRESS
无法完成该操作,因为指定的生物识别单元当前正用于注册事务, (系统池仅) 。

注解

若要同步使用 WinBioSetProperty ,请使用通过调用 WinBioOpenSession 创建的会话句柄调用 函数。 函数将一直阻塞,直到操作完成或遇到错误。 若要防止内存泄漏,必须在使用完缓冲区中包含的数据后,调用 WinBioFree 以释放 PropertyBuffer 参数指向的内存。

若要异步使用 WinBioSetProperty ,请使用通过调用 WinBioAsyncOpenSession 创建的会话句柄调用函数。 框架分配 WINBIO_ASYNC_RESULT 结构,并使用它来返回有关操作成功或失败的信息。 WINBIO_ASYNC_RESULT 结构将返回到应用程序回调或应用程序消息队列,具体取决于在 WinBioAsyncOpenSession 函数的 NotificationMethod 参数中设置的值:

  • 如果选择使用回调接收完成通知,则必须实现 PWINBIO_ASYNC_COMPLETION_CALLBACK 函数并将 NotificationMethod 参数设置为 WINBIO_ASYNC_NOTIFY_CALLBACK
  • 如果选择使用应用程序消息队列接收完成通知,则必须将 NotificationMethod 参数设置为 WINBIO_ASYNC_NOTIFY_MESSAGE。 框架返回指向窗口消息的 LPARAM 字段的WINBIO_ASYNC_RESULT指针。
若要防止内存泄漏,必须在使用完WINBIO_ASYNC_RESULT结构后调用 WinBioFree 以释放它。

要求

   
最低受支持的客户端 Windows 10 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 winbio.h
Library Winbio.lib
DLL Winbio.dll

另请参阅

WinBioFree

WinBioGetProperty