ГОСТ Р ИСО/МЭК19784-1—2007
9 Интерфейс поставщика услуги БиоАПИ
9.1 Общие положения
ИПУ — программный интерфейс, который предоставляет ПБУ для подключения к инфраструктуре
БиоАПИ. ИПУ является взаимно однозначным отображением вызова функции от биометрического прило
жения к инфраструктуре БиоАПИ (использующей ПИП, указанный в разделе 8) и далее — к присоединен
ной сессии. Инфраструктура БиоАПИ направляет вызовы ПИП к соответствующему ИПУ указанного ПБУ
(определяемого параметром дескриптора ПБУ в функции ПИП). В данном разделе были приняты следую
щие соглашения:
a)для функции ИПУ. параметры которой идентичны параметрам функции ПИП. имеющей то же самое
наименование (кроме пропуска дескриптора ПБУ). в данном разделе приведена только ее сигнатура, но
приведено подробное описание соответствующей функции ПИП;
b
) для функции ИПУ. параметры которой отличаются от параметров функции ПИП. имеющей то же
самое наименование, приведено ее полное описание;
c) существуют функции ПИП. не имеющие соответствующих функций ИПУ: такие функции полнос
тью не обрабатываются инфраструктурой БиоАПИ.
9.2 Определение типов (для ПБУ)
9.2.1 BioSPI_EventHandler
Прототип функции BioAPI_EventHandler{см. 7.28) используется для определения интерфейса обра
ботчика событий, которые позволяют инфраструктуре БиоАПИ принимать от ПБУ асинхронные уведомле
ния о событиях типа BioAPI_EVENT.
Пример — события вставки или удаления модуля БиоАПИ. обнаружения неисправности.
Адресфункции BioSPI_EventHandlerпередается ПБУво время выполнения функции BioSPI_BSPLoad.
Данный обработчик событий является единственным, который должен вызывать ПБУ для уведомления
инфраструктуры БиоАПИ о типах событий, происходящих в загруженном ПБУ
Для каждого ПБУ. загруженного одним или несколькими приложениями в результате выполнения
функции BioAPI_BSPLoad, существует единственный обработчик события. Инфраструктура БиоАПИ
должна уведомлять обработчик о событиях биометрических приложений, загрузивших ПБУ. в котором
происходит событие. Если инфраструктура получила уведомление о событии подключения до того, как
данноебиометрическое приложение загрузило ПБУ (нопосле того, какдругое биометрическое приложение
загрузило его), инфраструктура должна запомнитьданное событие и уведомить о нем обработчик событий
биометрического приложения немедленно после загрузки ПБУ биометрическим приложением.
Инфраструктура БиоАПИ пересылает события биометрическому приложению, которое вызвало соот
ветствующую функцию BioAPI_BSPLoad. Обработчик, указанный в BioSPI_EventHartdler. может быть выз
ван многократно в ответ на одно событие.
typedefBioAPI RETURN (BioAPI ’BioSPI EventHandler)
(const BioAPlJJUID ’BSPUuid,
BioAPlJJNITJD UnitID.
const BioAPI_UNIT_SCHEMA ’UnitSchema,
BioAPI_EVENT EventType);
9.2.1.1 Определения
BSPUuid — УУИД ПБУ, вызывающего событие.
UnitID — ИД модуля БиоАПИ. связанного с данным событием.
UnitSchema — указатель на модуль схемы модуля БиоАПИ. связанного с данным событием.
EventType — произошедшее событие типа BioAPI_EVENT.
Если параметр EventType имеет значение BioAPI_NOTIFY_INSERT, тодолжна бытьподготовлена схе
ма модуля (то есть параметр UnitSchema должен указывать на переменную типа). В другом случае пара
метр UnitSchema должен быть пустым.
Когда инфраструктура получает от ПБУ вызов обработчика событий, который хранит схему модуля,
инфраструктура недолжна вызывать функцию BioSPI_Free для освобождения блока памяти, содержаще го
схему модуля или блок памяти, указывающий на что-либо любым своим элементом.
9.2.2 BloSPI_BFP_ENUMERATION_HANDLER
Данная функция представляет собой обратный вызов, с помощью которого инфраструктура БиоАПИ
открывает ПБУ. чтобы дать ему возможность получать информацию об установленных ПБУ. Данная функ
ция аналогична функции BioAPI_EnumBFPs (см. 8.1.10). но в отличие от нее не является частью ПИП
64