Поделиться через


Функция 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
Параметры Identity и PropertyBuffer не могут иметь значение NULL.
E_INVALIDARG
Параметр PropertyType, PropertyId или PropertyBufferSize не может иметь значение 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 возвращается в обратный вызов приложения или в очередь сообщений приложения в зависимости от значения, заданного в параметре NotificationMethod функции WinBioAsyncOpenSession :

  • Если вы решили получать уведомления о завершении с помощью обратного вызова, необходимо реализовать функцию PWINBIO_ASYNC_COMPLETION_CALLBACK и задать для параметра NotificationMethodзначение WINBIO_ASYNC_NOTIFY_CALLBACK.
  • Если вы решили получать уведомления о завершении с помощью очереди сообщений приложения, необходимо задать для параметра NotificationMethodзначение WINBIO_ASYNC_NOTIFY_MESSAGE. Платформа возвращает указатель WINBIO_ASYNC_RESULT на поле LPARAM сообщения окна.
Чтобы предотвратить утечку памяти, необходимо вызвать WinBioFree , чтобы освободить структуру WINBIO_ASYNC_RESULT после завершения ее использования.

Требования

   
Минимальная версия клиента Windows 10 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Целевая платформа Windows
Header winbio.h
Библиотека Winbio.lib
DLL Winbio.dll

См. также раздел

WinBioFree

WinBioGetProperty