BioAPI_RETURN_BioAPI BioAPI_BSPLoad | ||||
(const BioAPI_UUID *BSPUuid, | ||||
BioAPI_EventHandlerAppNotifyCallback, | ||||
void* AppNotifyCallbackCtx); |
8.1.5.1 Описание
Данная функция инициализирует ПБУ с помощью функции BioSPI_BSPLoad (см. 9.3.1.1). Инициализация включает в себя регистрацию обработчика события приложения для указанного ПБУ и разрешение всех событий, кроме тех, которые были деактивированы последним вызовом BioAPI_EncibleEventNotifications (в БиоАПИ 2.1). Приложение может предоставить функцию обработчика событий, чтобы получать уведомления о событиях. Несколько приложений могут независимо и одновременно загружать один и тот же ПБУ, и каждое приложение может установить свой собственный обработчик событий. Все приложения должны получать уведомление о событии. Если приложение загружает несколько ПБУ, то могут использоваться одни и те же или разные обработчики события.
Приложение может установить столько обработчиков событий, сколько необходимо для данного ПБУ, путем многократного вызова функции BioAPI_BSPLoad для данного ПБУ. Обработчик событий идентифицируется по его адресу и содержанию.
Если в ПБУ возникает событие, то ПБУ может послать уведомление о событии инфраструктуре путем вызова обработчика событий инфраструктуры.
Когда инфраструктура получает уведомление о событии от ПБУ, она должна послать уведомление каждому обработчику событий, установленному каждым приложением, для которого данное уведомление о событии возможно для данного ПБУ. Поэтому отдельный обратный вызов уведомления о событии, сделанный из ПБУ к инфраструктуре, может привести к появлению нулевого значения или к обратным вызовам инфраструктуры к приложениям.
Когда инфраструктура получает уведомление о событии от ПБУ, она должна вызвать все обработчики событий, установленные каждым приложением для данного ПБУ. Если приложение установило несколько обработчиков событий, они должны быть вызваны по одному в любом порядке, выбранном инфраструктурой (такой вызов предпочтительнее одновременного вызова).
Уведомление о событии может появиться в любое время: во время вызовов БиоАПИ или в то время, когда вызовы БиоАПИ не выполняются. Разработчик приложения должен гарантировать, что обратные вызовы будут правильно и безопасно обрабатываться приложением независимо от того, когда приложение будет их получать.
Примечание - В этом случае необходимо использовать технологию синхронизированных потоков и порядка действий, сформированных кодом приложения на обработчик события.
Применяют "счетчик использований" установки обработчиков событий; они должны быть удалены путем вызова функции BioAPI_BSPUnload столько раз, сколько были установлены. Когда инфраструктура БиоАПИ вызывает функцию BioSPI_BSPLoad, она для каждого существующего модуля БиоАПИ от ПБУ получает уведомление о событии "установка". Если биометрическое приложение предоставило в вызове функции BioAPI_BSPLoad обработчик события и не деактивировало уведомления о событии "установка", то инфраструктура, в свою очередь, произведет обратный вызов обработчика событий приложения. Если используется БиоАПИ версии 2.1, то уведомления о событии установки могут быть деактивированы при помощи вызова функции BioAPI_EnableEventNotiflcations (см. примечание в 7.27). Это событие укажет биометрическому приложению, что оно может продолжать работу и вызвать функцию BioAPI_BSPAttach. Если аппаратный компонент для определенных функциональных возможностей отсутствует, то событие "установка" не может быть инициировано до тех пор, пока аппаратный компонент не будет подключен.
Данная функция может быть вызвана только в том случае, если был выполнен, по крайней мере, один вызов функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1), для которого еще не было произведено соответствующего вызова функции BioAPI_Terminate. Функция BioAPI_BSPAttach может быть вызвана несколько раз после выполнения функции BioAPI_BSPLoad.
Функция BioAPI_BSPLoad не должна вызываться до тех пор, пока ПБУ не будет установлен с помощью функции BioAPI_Util_InstallBSP. Определение установки ПБУ может быть проведено вызовом функции BioAPI_EnumBSPs.
(Измененная редакция, Изм. N 1).
8.1.5.2 Параметры
BSPUuid (входной) - УУИД ПБУ, выбранного для загрузки.