Функция 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
Указывает, как уведомления о завершении асинхронных операций в этом сеансе платформы должны доставляться в клиентское приложение. Это должно быть одно из следующих значений.
[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.
Код возврата | Описание |
---|---|
|
Недостаточно памяти для создания сеанса платформы. |
|
Если для метода уведомления задано значение WINBIO_ASYNC_NOTIFY_MESSAGE, параметр TargetWindow не может иметь значение NULL или HWND_BROADCAST а параметр MessageCode не может быть равен нулю (0). |
|
Необходимо задать параметры FrameworkHandle и AsynchronousOpen .
Если для метода уведомления задано значение WINBIO_ASYNC_NOTIFY_CALLBACK, необходимо также указать адрес функции обратного вызова в параметре CallbackRoutine . |
Комментарии
Дескриптор платформы, возвращаемый функцией WinBioAsyncOpenFramework , можно использовать для создания асинхронных уведомлений о завершении для следующих функций:
- WinBioAsyncEnumBiometricUnits
- WinBioAsyncEnumDatabases
- WinBioAsyncEnumServiceProviders
- WinBioAsyncMonitorFrameworkChanges
Если задать для параметра 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 |