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


Функция WinBioAsyncOpenFramework (winbio.h)

Открывает дескриптор биометрической платформы. Начиная с Windows 10 сборки 1607 эта функция доступна для использования с мобильным образом. Этот дескриптор можно использовать для асинхронного перечисления биометрических единиц, баз данных и поставщиков услуг, а также для получения асинхронных уведомлений о присоединении или удалении биометрических единиц к компьютеру.

Синтаксис

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

Указывает, как уведомления о завершении асинхронных операций в этом сеансе платформы должны доставляться в клиентское приложение. Это должно быть одно из следующих значений.

Значение Значение
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, результаты операции доставляются в структуру WINBIO_ASYNC_RESULT в функции обратного вызова, указанной параметром CallbackRoutine . Если параметр NotificationMethod имеет значение WINBIO_ASYNC_NOTIFY_MESSAGE, результаты операции доставляются в структуру WINBIO_ASYNC_RESULT , на которую указывает поле LPARAM сообщения окна.

[out] FrameworkHandle

Если функция не выполняется, этот параметр будет иметь значение NULL.

Если сеанс открыт синхронно и успешно, этот параметр будет содержать указатель на дескриптор сеанса.

Если указать, что сеанс открывается асинхронно, этот метод возвращает немедленно, дескриптор сеанса будет иметь значение NULL, и необходимо изучить структуру WINBIO_ASYNC_RESULT , чтобы определить, был ли сеанс успешно открыт.

Возвращаемое значение

Если функция завершается успешно, она возвращает S_OK. Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Код возврата Описание
E_OUTOFMEMORY
Недостаточно памяти для создания сеанса платформы.
E_INVALIDARG
Если для метода уведомления задано значение WINBIO_ASYNC_NOTIFY_MESSAGE, параметр TargetWindow не может иметь значение NULL или HWND_BROADCAST а параметр MessageCode не может быть равен нулю (0).
E_POINTER
Необходимо задать параметры FrameworkHandle и AsynchronousOpen .

Если для метода уведомления задано значение WINBIO_ASYNC_NOTIFY_CALLBACK, необходимо также указать адрес функции обратного вызова в параметре CallbackRoutine .

Комментарии

Дескриптор платформы, возвращаемый функцией WinBioAsyncOpenFramework , можно использовать для создания асинхронных уведомлений о завершении для следующих функций:

Параметр AsynchronousOpen определяет только, будет ли блокироваться операция открытия. Этот параметр не влияет на поведение завершения последующих вызовов, использующих дескриптор сеанса.

Если задать для параметра AsynchronousOpen значение TRUE, эта функция вернет S_OK сразу после выполнения начальной проверки аргументов. Все ошибки, обнаруженные за пределами этой точки, будут сообщаться вызывающей стороне с помощью метода, указанного параметром NotificationMethod . То есть успешное возвращаемое значение указывает только на то, что параметры WinBioAsyncOpenFramework были в порядке, а не на успешность операции открытия. Чтобы определить, успешно ли выполнена операция открытия, необходимо изучить структуру WINBIO_ASYNC_RESULT .

Требования

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

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

WinBioAsyncOpenSession