ГОСТ Р ИСО/МЭК 19784-1-2007 Автоматическая идентификация. Идентификация биометрическая. Биометрический программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса.

         

     ГОСТ Р ИСО/МЭК 19784-1-2007

 

Группа П85

 

      

     

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

 

 

 Автоматическая идентификация

 

 ИДЕНТИФИКАЦИЯ БИОМЕТРИЧЕСКАЯ

 

 Биометрический программный интерфейс

 

 Часть 1

 

 Спецификация биометрического программного интерфейса

 

 Automatic identification. Biometrics. BioAPI. Biometric Application Programming Interface. Part 1. BioAPI Specification

 

 

ОКС 35.040

Дата введения 2009-01-01

 

      

     

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"

 

Сведения о стандарте

 

1 ПОДГОТОВЛЕН Научно-исследовательским и испытательным центром биометрической техники Московского государственного технического университета имени Н.Э.Баумана (НИИЦ БТ МГТУ им. Н.Э.Баумана) на основе собственного аутентичного перевода стандарта, указанного в пункте 4 при консультационной поддержке Ассоциации автоматической идентификации "ЮНИСКАН/ГС1 РУС"

 

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 355 "Автоматическая идентификация"

 

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 25 декабря 2007 г. N 402-ст

 

4 Настоящий стандарт идентичен международному стандарту ИСО/МЭК 19784-1:2006 "BioAPI. Биометрический программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса" (ISO/IEC 19784-1:2006 "BioAPI - Biometric Application Programming Interface - Part 1: BioAPI Specification"), за исключением приложения G. Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2004 (подраздел 3.5) и учета его принадлежности к группе стандартов "Автоматическая идентификация".

 

При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении G

 

5 ВВЕДЕН ВПЕРВЫЕ

 

Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячно издаваемых информационных указателях "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет          

 

 

     ВНЕСЕНО Изменение N 1, утвержденное и введенное в действие Приказом Росстандарта от 23.11.2010 N 491-ст c 01.07.2012  

 

 

 

 Введение

Настоящий стандарт определяет высокоуровневую обобщенную модель биометрического распознавания, пригодную для использования в любой биометрической технологии. Настоящий стандарт не обеспечивает поддержку мультимодальной биометрии в явном виде.

 

Описываемая модель позволяет использовать компоненты биометрической системы разных изготовителей и обеспечивать их взаимодействие посредством установленных программных интерфейсов приложений (ПИП).

 

Основой модели является инфраструктура БПИ (BioAPI Framework), поддерживающая вызовы одного или нескольких биометрических программных приложений (далее - приложений), которые могут быть предоставлены различными изготовителями и потенциально могут выполняться одновременно с помощью ПИП БПИ. Инфраструктура БПИ обеспечивает поддержку вызова с помощью интерфейса поставщика услуги (ИПУ) одного или нескольких поставщиков биометрической услуги (ПБУ), которые могут быть предоставлены различными изготовителями и, возможно, будут выполняться одновременно, а также могут быть динамически загружены и вызваны в соответствии с требованиями биометрического приложения.

 

Настоящий стандарт определяет поведение инфраструктуры Био-АПИ, когда приложения и ПБУ находятся в одной системе. Другие взаимодействующие стандарты (см. 4.29) определяют разновидности поведения, которые позволяют ПБУ и графическому интерфейсу пользователя работать удаленно от системы, содержащей приложение.

 

Примечание - ИСО/МЭК 24708* [6], определяющий протокол межсетевого обмена биометрического программного интерфейса (ПМО БиоАПИ), является примером стандарта межсетевого обмена.

 

На самом нижнем уровне модели находятся аппаратные или программные средства, выполняющие биометрические функции, например, такие как получение данных, сравнение или архивирование. Такие составляющие биометрической системы называются модулями БиоПИП и могут являться частью ПБУ или поставляться как компонент поставщика функции БиоПИП (ПФБ).

 

Между ПБУ различных изготовителей, предоставляющих для записи информации от модулей БиоАПИ, к которым они имеют доступ, структуры данных, соответствующие другим международным стандартам, особенно ISO/IEC 19794, могут быть установлены взаимодействия через инфраструктуру БиоАПИ.

 

Таким образом, ПБУ может обеспечивать выполнение биометрических услуг с помощью:

 

a) модулей БиоАПИ, которые являются частью или непосредственно управляются ПБУ, или

 

b) вызова через интерфейс поставщика функции БиоПИП (ИПФ) одного или нескольких компонентов поставщика биометрической функции (ПБФ) разных изготовителей, которые управляют модулями БиоАПИ, являющимися частью ПБФ.

 

Примечание - Модуль БиоАПИ может состоять только из программного обеспечения или из комбинации программного и аппаратного обеспечения (например, биометрический сканер, архив или алгоритм).

 

Допускается наличие одного или более модулей БиоПИП определенного типа, который поддерживается ПБУ (или ПБФ). Данные модули могут быть динамически добавлены и удалены из системы. Добавление и удаление вызывают события, о которых может быть сообщено приложению (через ПБУ и инфраструктуру БиоПИП).

 

Настоящий стандарт устанавливает основные биометрические функции регистрации, верификации и идентификации (приложение С) и включает в себя интерфейс базы данных, что позволяет приложению управлять хранением биометрических записей с помощью модуля архива БиоАПИ, управляемого ПБУ или ПБФ. Это обеспечивает оптимальную производительность процессов архивирования и сравнения биометрического образца с множеством контрольных шаблонов (например, при выполнении функции биометрической идентификации по большой выборке).

 

Интерфейс предоставляет примитивы*, которые позволяют приложению управлять получением биометрических образцов от биометрических сканеров с помощью доступа к соответствующему модулю БиоПИП, использованием этих биометрических образцов для регистрации (хранения в базе записей биометрической информации (ЗБИ), управляемой приложением или ПБУ), и последующей верификацией и идентификацией.

________________

* В настоящем стандарте термин "примитивы" обозначает базовый элемент, используемый для построения программы.

 

Настоящий стандарт также устанавливает содержание реестра компонентов (информацию о биометрических компонентах, установленных в биометрической системе). Он также обеспечивает интерфейс реестра компонентов для управления и проверки данного реестра.

 

В настоящем стандарте использован язык программирования Си (по ИСО/МЭК 9899:1999 "Языки программирования. Си") для определения структур данных и вызовов функций, которые формируют интерфейсы БиоАПИ.

 

Раздел 6 устанавливает модель БиоАПИ, ее компоненты и интерфейсы, определенные для этих компонентов.

 

Раздел 7 устанавливает структуры данных, используемые в БиоАПИ.

 

Раздел 8 устанавливает вызовы функций, инициируемые приложением и поддерживаемые соответствующей инфраструктурой БиоАПИ, которые обрабатываются либо непосредственно инфраструктурой БиоАПИ (например, получение списков установленных компонентов БиоАПИ), либо переадресовываются функциям, предоставляемым ПБУ.

 

Раздел 9 устанавливает вызовы функций, поддерживаемые соответствующим ПБУ и осуществляемые инфраструктурой БиоАПИ в ответ на вызов биометрического приложения.

 

Раздел 10 устанавливает форму реестра биометрических компонентов и интерфейс реестра компонентов.

 

Раздел 11 устанавливает обработку событий и возвращаемые ошибки.

 

В приложении А приведены подробные требования и таблицы определения соответствия спецификации БиоПИП, которые могут быть использованы разработчиком компонентов приложения БиоПИП, инфраструктуры БиоПИП или ПБУ для определения поддерживаемых функций и биометрических форматов записи.

 

Примечание - Методы тестирования на соответствие БиоАПИ требованиям настоящего стандарта приведены в ISO/IEC 24709.

 

В приложении В приведено описание ЗБИ БиоАПИ, соответствующее формату ведущей организации, определенному в ИСО/МЭК 19785-1 "Информационные технологии. Единая структура формата обмена биометрическими данными. Часть 1. Спецификация элементов данных". В приложении также приведено описание биометрической записи, установленное в вышеуказанном стандарте, и побитовое представление записи для ее хранения и передачи.

В приложении С приведено краткое описание основных положений настоящего стандарта.

 

В приложении D приведен пример текста программы для установления последовательности вызовов функций.

 

Отдельные положения стандарта ИСО/МЭК 19784-1 могут быть предметом других патентных прав, помимо указанных в нем.

 

Сноски в тексте стандарта приведены для пояснения и выделены курсивом.

 

(Измененная редакция, Изм. N 1).

 

 

      1 Область применения

Настоящий стандарт устанавливает программный интерфейс приложения (ПИП) и интерфейс поставщика услуги (ИПУ) в качестве стандартных интерфейсов биометрической системы, позволяющих создавать биометрическую систему, используя компоненты, изготовленные различными изготовителями. Соответствие ПИП и ИПУ требованиям настоящего стандарта и других стандартов ИСО/МЭК обеспечивает взаимодействие между этими компонентами.

 

Положения настоящего стандарта могут применяться для разных биометрических технологий и систем различного назначения: от персональных устройств идентификации и систем обеспечения сетевой безопасности до масштабных комплексных систем идентификации.

 

Настоящий стандарт устанавливает модель, в которой инфраструктура БиоАПИ, наряду с поддержкой нескольких биометрических приложений (возможно предоставленных различными изготовителями), может:

 

- использовать несколько динамически устанавливаемых, загружаемых или выгружаемых компонентов ПБУ (возможно изготовленных на различных предприятиях) и через них - модули БиоПИП;

 

- использовать один из альтернативных наборов компонентов ПБФ (возможно изготовленных на различных предприятиях);

 

- использовать непосредственно модули БиоАПИ.

 

Примечание - Если модули БиоАПИ и ПБУ предоставлены разными изготовителями, может потребоваться использование ИПФ, требования к которому установлены в следующих частях комплекса стандартов ИСО/МЭК 19784.

 

Настоящий стандарт не распространяется на биометрические системы, разработанные одним изготовителем, в частности, когда для них не предусмотрена возможность добавления или замены программных и/или аппаратных средств или изменения целей использования.

 

Настоящий стандарт не устанавливает требований безопасности для биометрических приложений и ПБУ.

 

Примечание - Руководство по аспектам безопасности биометрических систем приведено в ISO/IEC 19092 [3].

 

Настоящий стандарт не распространяется на эксплуатационные характеристики биометрических систем (особенно идентификационных систем) и на зависимость эксплуатационных характеристик системы от функциональной совместимости компонентов.

 

Настоящий стандарт определяет версию спецификации БиоАПИ с номером последней редакции 2 и номером поправки (или номер изменения данной редакции) 0, то есть версию 2.0.

 

Примечание - Настоящий стандарт не распространяется на более ранние версии спецификации БиоАПИ.

 

 

      2 Соответствие

2.1 Компоненты БиоПИП считают соответствующими требованиям настоящего стандарта, если они соответствуют требованиям приложения А.

 

2.2 Для определения описываемых интерфейсов в настоящем стандарте использован язык программирования Си по ИСО/МЭК 9899. Компонент БиоАПИ, предоставляющий или использующий интерфейс на других языках программирования, может соответствовать требованиям настоящего стандарта при условии, что взаимодействующий с ним компонент системы может использовать интерфейс с помощью подробной спецификации на языке программирования Си, представленной в настоящем стандарте (7.1).

 

 

      3 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты, которые необходимо учитывать при использовании настоящего стандарта. В случае ссылок на стандарты, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае, когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных стандартов, включая любые поправки и изменения к ним:

 

ИСО/МЭК 9834-8 Информационные технологии. Взаимосвязь открытых систем. Процедуры для работы регистрационных органов в системе OSI. Часть 8. Создание и регистрация универсальных уникальных идентификаторов (UUIDs) и их использование в качестве компонентов идентификаторов объектов ASN1.

 

ИСО/МЭК 9899:1999 Языки программирования. Си

 

ИСО/МЭК 10646-2003 Информационные технологии. Универсальный многоактетный комплекс закодированных знаков (UCS).

ИСО/МЭК 19785-1 Информационные технологии. Единая структура форматов обмена биометрическими данными. Часть 1. Спецификация элементов данных

 

ИСО/МЭК 19785-2 Информационные технологии. Единая структура форматов обмена биометрическими данными. Часть 2. Процедуры действий регистрационного органа в области биометрии

 

IETF RFC 3987 Интернационализированные идентификаторы ресурсов (ИИР)

 

(Измененная редакция, Изм. N 1).

 

 

      4 Термины и определения

В настоящем стандарте применены следующие термины и определения:

 

Примечание - Названия функций и элементов данных не включены в данный раздел, а их определения приведены в тексте настоящего стандарта.

 

4.1 адаптация; адаптация шаблона (adaptation; template adaptation): Использование ЗБИ, полученной с вновь зарегистрированного и верифицированного биометрического образца, для автоматического обновления или модернизации зарегистрированного ранее контрольного шаблона.

 

Примечание - Данную процедуру используют для минимизации эффектов устаревания шаблонов.

 

4.2 присоединенная сессия (attach session): Временная связь между приложением, отдельным ПБУ и набором модулей, напрямую или косвенно управляемых ПБУ.

 

4.3 компонент БиоАПИ (BioAPI component): Компонент архитектуры БиоАПИ с определенным интерфейсом, который может быть предоставлен отдельным изготовителем, используемый при испытании на соответствие.

 

Примечание - Компоненты БиоАПИ включают в себя приложения БиоАПИ, инфраструктуру БиоАПИ, ПБУ и ПБФ.

 

4.4 поставщик функции БиоАПИ; ПБФ (BioAPI function provider; BFP): Компонент, управляющий одним или более модулями БиоАПИ определенной категории.

 

Примечание 1 - Интерфейсы ПБФ стандартизованы в следующих частях комплекса стандартов ИСО/МЭК 19784.

 

Примечание 2 - ПБУ распределены на типы, соответствующие типам модулей БиоАПИ, которыми они управляют (см. 6.2.4).

 

4.5 модуль БиоАПИ (BioAPI unit): Абстракция аппаратного или программного уровня, напрямую управляемая ПБУ или ПБФ.

 

Примечание - Модули БиоАПИ категоризированы (6.2.2) и включают в себя модули сканеров, архива, алгоритмов сравнения и алгоритмов обработки.

 

4.6 биометрический (biometric): Имеющий отношение к биометрии.

 

4.7 блок биометрических данных; ББД (biometric data block; BDB): Блок данных, построенный в соответствии с определенным форматом и содержащий один или несколько биометрических образцов или биометрических шаблонов.

 

Примечание 1 - Настоящий стандарт не распространяется на форматы, допускающие, что размер ББД может не быть кратным восьми битам.

 

Примечание 2 - Требования к структуре формата ББД не предъявляются.

 

Примечание 3 - Каждая* часть комплекса ИСО/МЭК 19794 устанавливает требования к одному и более форматам ББД. Изготовитель может создать и зарегистрировать** свой формат.

________________

* В оригинале ИСО/МЭК 19784-1 допущена ошибка. Первая часть этого стандарта называется "Принципы и структура" и не устанавливает требований к какому-либо формату ББД.

 

** Регистрация должна быть проведена органом регистрации в области биометрии в системе ЕСФОБД с присвоением соответствующих идентификаторов по ГОСТ Р ИСО/МЭК 19785-1-2007 и ГОСТ Р ИСО/МЭК 19785-2-2007.

 

Примечание 4 - Информация, содержащаяся в ББД, не имеет значения для приложения БиоАПИ, поэтому далее в тексте стандарта использован термин "неопределенный блок биометрических данных".

 

4.8 запись биометрической информации; ЗБИ (biometric information record; BIR): Структура данных, включающая в себя один или более ББД вместе с информацией, идентифицирующей форматы ББД, и дополнительной информацией, например о типе ББД (подписанный, зашифрованный).

 

Примечание - Настоящий стандарт устанавливает формат ЗБИ (см. 7.4), включающий в себя только один ББД. ИСО/МЭК 19785 устанавливает формат ЗБИ, содержащий несколько ББД в ЗБИ, однако в нем приведено аналогичное определение данного термина. Необходимо учитывать, что при использовании термина ЗБИ в тексте настоящего стандарта имеется в виду ЗБИ, соответствующая требованиям приложения В. При необходимости дополнительных пояснений в тексте стандарта может быть использован термин "БиоАПИ ЗБИ".

4.8.1 контрольная ЗБИ (reference BIR): ЗБИ, ББД которой содержит один или более биометрических шаблонов.

 

4.8.2 образец ЗБИ (sample BIR): ЗБИ, ББД которой содержит только биометрические образцы, не являющиеся шаблонами.

 

4.9 биометрический образец (biometric sample): Информация с биометрического сканера, полученная непосредственно или после обработки.

 

Примечание - См. также терминологические статьи 4.9.2, 4.9.3 и 4.9.4.

 

4.9.1 биометрический шаблон (biometric template): Биометрический образец или комбинация биометрических образцов, пригодных для хранения в качестве контрольных для дальнейшего сравнения.

 

4.9.2 промежуточный биометрический образец (intermediate biometric sample): Биометрический образец, полученный путем обработки исходного биометрического образца и предназначенный для дальнейшей обработки.

 

4.9.3 обработанный биометрический образец (processed biometric sample): Биометрический образец, предназначенный для сравнения.

 

4.9.4 исходный биометрический образец (raw biometric sample): Биометрический образец, полученный непосредственно с биометрического сканера.

 

Примечание - В настоящее время стандарты, устанавливающие требования к форматам необработанных биометрических образцов, не разработаны. Спецификации данных форматов зависят от характеристик биометрических сканеров и от их изготовителей. При разработке стандартов на биометрические сканеры должны быть установлены требования к форматам необработанных биометрических образцов.

 

4.9.5 контрольный шаблон (reference template): Сохраненный биометрический шаблон.

 

4.10 биометрический сканер (biometric sensor): Биометрическое аппаратное средство, используемое для получения исходных биометрических образцов.

 

Примечание - Также допускается использовать термин "биометрическое устройство".

 

4.11 поставщик биометрической услуги; ПБУ (biometric service provider; BSP): Компонент, осуществляющий для приложения определенные действия либо с помощью определенного интерфейса путем непосредственного управления одним или несколькими модулями БиоАПИ, либо через поставщиков функции БиоАПИ также с помощью определенного интерфейса.

 

4.12 биометрия (biometrics): Автоматическое* распознавание индивидума, в основе которого лежат его поведенческие и биологические характеристики.

________________

* В том числе и автоматизированное.

 

4.13 обратный вызов (callback): Механизм, в соответствии с которым компонент, предоставляющий ПИП, вызывает функцию из компонента, использующего ПИП, причем адрес данной функции предварительно передан в качестве входного параметра при вызове функции ПИП.

 

Примечание - Данный механизм позволяет компоненту БиоАПИ связаться с другим компонентом БиоАПИ, не используя вызовы функции ПИП, обычно в ответ на произошедшее событие или прерывание.

 

4.14 реестр компонентов (component registry): Информация, сохраняемая инфраструктурой БиоАПИ, о доступных в биометрической системе компонентах БиоАПИ.

 

4.15 шифровать/шифрование (encrypt/encryption): Обратимое преобразование данных с помощью криптографического алгоритма для создания зашифрованного* текста с целью защиты информации (обеспечения конфиденциальности).

________________

* Термин "зашифрованный" может быть определен как защищенный, закрытый.

 

Примечание 1 - Алгоритмы шифрования обеспечивают выполнение двух процессов: шифрование, которое преобразует исходный текст в зашифрованный, и дешифрование, которое преобразует зашифрованный текст в исходный.

 

Примечание 2 - Шифрование может использоваться как с целью обеспечения безопасности, так и с целью обеспечения конфиденциальности.

 

4.16 регистрация (enrollment): Процесс получения одного или нескольких биометрических образцов человека с последующим построением биометрического контрольного шаблона, используемого для верификации или идентификации личности.

 

Примечание - Контрольный шаблон обычно сохраняется биометрическим приложением и/или ПБУ, поддерживающим модуль архива БиоАПИ.

 

4.17 вероятность ошибки ложного совпадения; ОЛС (false match rate; FMR): Мера вероятности, с которой процесс биометрического сравнения неверно идентифицирует личность или не сможет отказать в доступе нарушителю.

 

Примечание 1 - В БиоАПИ ОЛС используется в качестве средства установления оценок соответствия и порогов (приложение С).

 

Примечание 2 - Раньше данное определение использовалось также для определения термина "вероятность ошибки ложного доступа", но использование термина "вероятность ошибки ложного совпадения" является предпочтительным. Для терминов "вероятность ошибки ложного отказа; ОЛО" и "вероятность ошибки ложного несовпадения; ОЛН" использование последнего является предпочтительным*.

________________

* В том числе и автоматизированное.

 

4.18 дескриптор (handle): Параметр, возвращаемый функцией БиоАПИ (например, А), который может быть использован приложением БиоАПИ в следующем вызове функции для идентификации компонента БиоАПИ или элемента данных в рамках компонента А.

 

Примечание - Типами дескрипторов являются:

 

BIR_Handle - создается ПБУ для выбора или доступа к ЗБИ в рамках данного ПБУ;

 

BSP Attach Session Handle - используется для присоединенной сессии;

 

DB_Handle - создается ПБУ для выбора или доступа к управляемой данным ПБУ базе данных ЗБИ.

 

4.19 идентифицировать/идентификация (identify/identification): Процесс сравнения предложенного биометрического образца с контрольной выборкой (схема "один ко многим") с целью определения личности, которой соответствует определенный шаблон данной выборки, имеющий сходство с предложенным биометрическим образцом.

 

Примечание - Данный процесс часто называют "идентификационное сопоставление".

 

4.20 сопоставлять/сопоставление (match/matching): Процесс сравнения предложенного биометрического образца с одним из контрольных биометрических шаблонов (схема "один к одному") с целью оценки степени схожести.

 

Примечание 1 - Основой решения о допуске или об отказе обычно является превышение данной оценки степени схожести порогового значения.

 

Примечание 2 - Алгоритмы сопоставления и их влияние на вероятность ошибки ложного совпадения и вероятность ошибки ложного несовпадения в настоящее время не стандартизованы.

 

Примечание 3 - Также см. определения терминов "идентифицировать" (4.19) и "верифицировать" (4.28).

 

4.21 полезная информация (payload): Данные, собранные во время регистрации и относящиеся к контрольному шаблону, которые могут быть выданы после удачной биометрической верификации.

 

Примечание - Примерами полезной информации являются имена пользователей, счета, пароли, криптографические ключи, цифровые подписи (приложение С).

 

4.22 оценка схожести/оценивание схожести (score/scoring): Значение, определяющее степень соответствия биометрического образца и контрольного биометрического шаблона.

 

4.23 блок безопасности (security block): Блок данных, содержащий информацию о целостности данных ЗБИ.

 

4.24 независимое устройство (self-contained device): Комбинированное устройство, которое включает в себя биометрический сканер, а также все или часть функций ПБУ.

 

Примечание - Независимое устройство может не только получать биометрические образцы, но также обрабатывать, сопоставлять и/или хранить их. Данные функции обычно реализованы на аппаратном уровне или на уровне встроенных программных средств.

 

4.25 подпись/цифровая подпись (signature/digital signature): Особые данные, добавленные к блоку данных, или криптографическое преобразование блока данных, позволяющее получателю блока данных гарантировать подлинность автора и целостность блока данных и защитить данные от фальсификации.

 

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

 

4.26 порог (threshold): Значение, устанавливающее степень схожести или корелляции, превышение которого позволяет считать биометрический образец соответствующим контрольному биометрическому шаблону.

 

4.27 универсальный уникальный идентификатор; УУИД (universally unique identificator; UUID): 128-битовое значение, определенное по ИСО/МЭК 9834-8.

 

4.28 верифицировать/верификация (verify/verification): Процесс сравнения биометрического образца с контрольным биометрическим шаблоном (схема "один к одному") с целью определения соответствия предложенного биометрического образца контрольному шаблону.

 

Примечание - Данный процесс также часто называют "верификационное сопоставление".     

 

4.29 стандарты межсетевого обмена (interworking standards): Стандарты, которые преобразовывают действия инфраструктуры БиоАПИ (и требования для соответствия БиоАПИ) для поддержки использования коммуникационных каналов связи с целью предоставления возможности приложению взаимодействовать с удаленным ПБУ с использованием стандартизированного протокола.     

4.30 тестировать-верифицировать/тест-верификация (test-verify/test-verification): Процесс сравнения "один к одному" тестового образца с биометрическим шаблоном при регистрации для определения соответствия тестового образца биометрическому шаблону.     

4.31 тип регистрации (enroll type): Значение, которое указывает шаблон подопераций, выполняемых ПБУ в процессе операции регистрации.     

 

4.29-4.31 (Введены доплнительно, Изм. N 1).

 

      5 Обозначения и сокращения

В настоящем стандарте приняты следующие обозначения и сокращения:

 

 

 

ПИП

- программный интерфейс приложений (Application Programming Interface; API);

ББД

- блок биометрических данных (Biometric Data Block; BDB);

ПБФ

- поставщик функции БиоАПИ (BioAPI Function Provider; BFP);

ПБУ

- поставщик биометрической услуги (Biometric Service Provider; BSP);

ЕСФОБД

- единая структура формата обмена биометрическими данными (Common Biometric Exchange Formats Framework; CBEFF);

ОЛС

- вероятность ошибки ложного совпадения (False Match Rate; FMR);

ИПФ

- интерфейс поставщика функции (Function Provider Interface; FPI);

ГИП

- графический интерфейс пользователя (Graphical User Interface; GUI);

ИД

- идентичность/идентификация/идентификатор (Identity/Identification/Identifier; ID);

ИИР

 

- интернационализированный идентификатор ресурса (см. RFC 3987)

 

ПМО БиоАПИ

 

- протокол межсетевого обмена биометрического программного интерфейса

 

CHK

- сопоставление на карте (Match on Card; MOC);

ИДП

- идентификатор продукта (Product ID; PID);

БЗИ

- блок защиты информации (Security Block; SB);

СБЗ

- стандартный биометрический заголовок (Standard Biometric Header; SBH).

Примечание - Данное сокращение соответствует приведенному в ИСО/МЭК 19785-1;

 

 

 

ИПУ

- интерфейс поставщика услуги (Service Provider Interface);

УУИД

- универсальный уникальный идентификатор (Universally Unique Identifier; UUID).

 

 

               

(Измененная редакция, Изм. N 1).

 

      

 

      

 

      6 Архитектура БиоАПИ

 

      

 

      6.1 Архитектурная модель ПИП/ИПУ БиоАПИ

6.1.1 БиоАПИ включает в себя модель ПИП/ИПУ, изображенную на рисунке 1.

 

 

Рисунок 1 - Модель БиоАПИ ПИП/ПБУ

Примечание - На рисунке 1 структура модели ниже уровня ИПУ упрощена. Возможные варианты внутренней структуры и стандартизированный интерфейс ПБУ изображены на рисунке 2.

 

 

Рисунок 2 - Иллюстрация архитектуры ПБУ

6.1.2 Система БиоАПИ состоит из компонентов БиоАПИ, имеющих стандартизированные интерфейсы. На рисунке 1 показаны взаимодействия между тремя видами компонентов БиоАПИ: инфраструктурой БиоАПИ, приложениями и монолитными ПБУ.

 

Примечание - Описание стандартизированных интерфейсов, позволяющее независимым компонентам БиоАПИ предоставлять доступ к функциям ПБУ, приведено в 6.2.

 

6.1.3 ПИП определяет интерфейс между инфраструктурой БиоАПИ и биометрическим приложением. Приложение предназначено для вызова функций, описанных в спецификации ПИП (раздел 8). Инфраструктура БиоАПИ поддерживает функции, приведенные в спецификации ПИП.

 

6.1.4 ИПУ определяет интерфейс между инфраструктурой БиоАПИ и ПБУ. Инфраструктура БиоАПИ вызывает функции, описанные в спецификации ИПУ (раздел 9). ПБУ поддерживает функции, приведенные в спецификации ИПУ.

 

6.1.5 Инфраструктура БиоАПИ предназначена для управления ПБУ и отображения вызовов функций ПИП функциям ИПУ, адресованных соответствующему ПБУ.

 

6.1.6 Приложение может получить доступ к функциональным возможностям ПБУ (через инфраструктуру БиоАПИ) только после того как ПБУ будет загружен и присоединен (8.1.5 и 8.1.7). Когда приложению больше не требуется использование ПБУ, оно его отсоединяет и выгружает (см. 8.1.6 и 8.1.8).

 

6.1.7 Приложение может одновременно загружать и присоединять более одного ПБУ. ПБУ может быть одновременно присоединен к более чем одному приложению.

 

Примечание - Взаимодействия между приложением и присоединенным ПБУ обычно не зависят от взаимодействий между этим приложением и другими ПБУ или между этим ПБУ и другими приложениями, за исключением случаев, когда возникает конфликт с физическим устройством, управляемым ПБУ.

 

6.1.8 Функции, определенные в настоящем стандарте, поддерживают наличие в биометрической системе:

 

a) отдельной инфраструктуры БиоАПИ со связанным с ней реестром компонентов;

 

b) динамического выполнения и завершения нескольких одновременно выполняющихся биометрических приложений, взаимодействующих с данной инфраструктурой БиоАПИ;

 

c) динамической установки, удаления (и связанными с ними загрузкой и выгрузкой) нескольких ПБУ, взаимодействующих с данной инфраструктурой БиоАПИ;

 

d) сообщения от ПБУ инфраструктуре БиоАПИ (и следовательно, выполняющемуся биометрическому приложению) о событиях, связанных с динамическим присоединением и отсоединением модулей БиоАПИ (см. 6.5), управляемых данным ПБУ.

 

Примечание - Ожидается, что ПИП будет связан с единственным приложением, управляющим одним ПБУ с не более чем одним модулем БиоАПИ каждой биометрической категории, доступ к которому обеспечивается с помощью данного ПБУ. Тем не менее поддержка доступа приложения к нескольким ПБУ, каждый из которых способен управлять несколькими модулями БиоАПИ (но только одним из каждой категории для данной присоединенной сессии), помогает облегчить такие применения, как контроль физического доступа, особенно при использовании сетевых устройств.

 

е) предоставление приложению графической информации об активной операции регистрации, верификации или идентификации.

 

(Измененная редакция, Изм. N 1).

 

 

      6.2 Архитектурная модель ПБУ БиоАПИ

6.2.1 Модули БиоАПИ представляют собой абстракцию биометрических устройств и являются основными структурными блоками, которые предоставляет ПБУ приложению. Они включают в себя и скрывают программные и аппаратные ресурсы различных типов, такие как устройство регистрации, архивирующее устройство и т.д.

 

6.2.2 Каждый модуль БиоАПИ моделирует или включает в себя один (или ни одного) элемент аппаратного обеспечения и любое необходимое программное обеспечение. В настоящее время определенны следующие категории модулей БиоАПИ:

 

- модуль сканера;

 

- модуль архива;

 

- модуль алгоритма сопоставления;

 

- модуль алгоритма обработки.

 

Примечание - Первые два модуля, как правило, но не обязательно, связаны со аппаратными средствами, а последние два модуля, как правило, но не обязательно, не имеют связанных с ними аппаратных средств.

 

6.2.3 Модуль БиоАПИ может управляться ПБУ внутренне (прямое управление модулем БиоАПИ) или связанным поставщиком функции БиоАПИ (ПБФ) (непрямое управление модулем БиоАПИ). Интерфейсы поставщика функции БиоАПИ (ИПФ) определены в следующих частях комплекса стандартов ИСО/МЭК 19784.

 

6.2.4 ПБФ может управлять несколькими модулями БиоАПИ данной категории (но не более чем одним в любой присоединенной сессии для данного приложения). ПБФ категоризированы в соответствии с категориями модулей БиоАПИ, которыми они могут управлять. В настоящее время определены следующие категории ПБФ:

 

- сканера;

 

- архива;

 

- алгоритма сопоставления;

 

- алгоритма обработки.

 

6.2.5 ИПФ БиоАПИ для каждой категории ПБФ определены в других частях комплекса стандартов ИСО/МЭК 19784. Все ИПФ поддерживают доступ к одному или нескольким (но не более чем к одному в любой присоединенной сессии для данного приложения) модулям БиоАПИ в адресуемом ПБФ.

           

6.2.6 ПБУ, поддерживающий несколько модулей БиоАПИ (управляемых непосредственно или с помощью ПБФ), может поддерживать интерфейс ИПУ, позволяющий приложению выбрать конкретный модуль БиоАПИ (один для каждой категории) для присоединенной сессии. Приложение может задать параметр BioAPI_DONT_CARE для модуля БиоАПИ конкретной категории. В этом случае выбор используемого модуля БиоАПИ осуществляет ПБУ.

 

6.2.7 Если разработчик ПБУ указывает конкретную категорию модуля БиоАПИ, то ПБУ должен иметь возможность управлять модулем БиоАПИ данной категории напрямую или взаимодействовать с ПБФ соответствующей категории с помощью соответствующего стандартизованного ИПФ.

 

6.2.8 Функции ПИП БиоАПИ и ИПУ (в некоторых случаях - функции ИПФ) (8.1.12 и 9.3.1.7) дают возможность приложению посылать модулю или запрашивать у модуля БиоАПИ управляющую информацию и информацию о статусе с использованием ПИП БиоАПИ и ИПУ (или ИПФ). Эти функции являются дополнительными к обычным биометрическим операциям. Параметры управляющих функций не стандартизованы. Если ПБУ или ПБФ (если он задействован) не поддерживает эту управляющую функцию, возвращается ошибка (6.6).

 

6.2.9 Если установлена присоединенная сессия ПБУ, выбирается не более чем один модуль БиоАПИ каждой категории (8.1.7).

 

Примечание - Для данной архитектуры требуется, чтобы интерфейсы ИПФ обеспечивали возможность ПБУ передавать ПБФ идентификацию (обеспечиваемую интерфейсом ПИП и ИПУ) того модуля БиоАПИ, который должен использоваться. Это подразумевает наличие конкретной камеры, сканера, устройства хранения и других устройств. Необходимые функции ИПФ для каждой категории ПБФ установлены в следующих частях комплекса стандартов ИСО/МЭК 19784.

 

 

      6.3 Реестр компонентов

6.3.1 Реестр компонентов содержит информацию об установленных ПБУ и ПБФ.

 

6.3.2 В модели БиоАПИ предполагается наличие в биометрической системе единственного экземпляра инфраструктуры БиоАПИ и единственного связанного с ним реестра компонентов.

 

Примечание - В реальной информационной системе могут быть несколько реестров компонентов, поддерживаемых одним и тем же, но разделяемым, кодом инфраструктуры БиоАПИ либо разными кодами инфраструктуры БиоАПИ (возможно, старой и новой версиями инфраструктуры). Это обеспечивается наличием нескольких биометрических систем в одной реальной информационной системе.

 

6.3.3 БиоАПИ требует, чтобы не было взаимодействий или конфликтов между различными биометрическими системами, входящими в одну реальную компьютерную систему.

 

Примечание - Если реальная компьютерная система содержит несколько биометрических систем, возможное разделение кода и программно-алгоритмических средств, с помощью которых приложение связывается с той или иной биометрической системой, является вопросом исполнения.

 

6.3.4 Следующая информация может быть получена приложением с помощью функций инфраструктуры БиоАПИ, возвращающих информацию реестра компонентов (8.1.3, 8.1.4 и 8.1.10):

 

a) информация о самой инфраструктуре BioAPI;

 

b) подробные данные о всех установленных ПБУ;

 

c) подробные данные о всех установленных ПБФ.

 

Примечание - Информация об установленных ПБФ также может быть получена ПБУ с помощью механизма обратного вызова.

 

6.3.5 Следующая информация может быть получена приложением с помощью функций инфраструктуры БиоАПИ, передаваемых через ИПУ конкретному ПБУ (8.1.11 и 8.1.9):

 

a) подробные данные о всех установленных ПБФ, которые поддерживаются данным ПБУ;

 

b) подробные данные о всех модулях БиоАПИ, находящихся в подключенном состоянии, к которым возможен доступ с помощью данного ПБУ (напрямую или с помощью поддерживаемого ПБФ).

 

6.3.6 Информация, приведенная в 6.3.4 и 6.3.5, может быть получена приложением путем использования функций, которые могут быть вызваны в следующих условиях:

 

a) информация о самой инфраструктуре может быть получена в любое время после вызова функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1) (8.1.3);

 

b) подробные данные о всех установленных ПБУ могут быть получены в любое время после вызова функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1) (8.1.4);

 

c) подробные данные о всех установленных ПБФ могут быть получены в любое время после вызова функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1) (8.1.10);

 

d) подробные данные о всех установленных ПБФ, которые поддерживаются каждым ПБУ, могут быть получены в любое время после вызова функции BioAPI_Load (8.1.11) для этого ПБУ.

 

Примечание 1 - Приложением могут быть загружены одновременно несколько ПБУ.

 

Примечание 2 - Предполагается, что при вызове функции BSP_Load ПБУ использует ИПФ для загрузки всех ПБФ, которые он может использовать;

 

e) подробные данные о всех модулях БиоАПИ, находящихся в подключенном состоянии, к которым возможен доступ с помощью данного ПБУ (напрямую или с помощью поддерживаемого ПБФ), могут быть получены (по ссылке на УУИД ПБУ) в любое время после вызова функции BioAPI_Load (8.1.9) для этого ПБУ.

 

(Измененная редакция, Изм. N 1).

 

 

      6.4 Установка и удаление ПБУ и ПБФ

6.4.1 Для установки ПБУ или ПБФ используют УУИД (параметр функций BioAPI_Util_InstallBSP и BioAPI_Util_lnstallBFP) для идентификации ПБУ или ПБФ. Установка ПБУ или ПБФ с помощью УУИД, с которым ранее уже был установлен ПБУ или ПБФ, должна приводить к отказу установки и возврату ошибки. Если один и тот же ПБУ или ПБФ установлен в нескольких биометрических системах, он должен иметь один и тот же УУИД во всех системах. Необходимо, чтобы УУИД был уникальным для каждого ПБУ и ПБФ в отдельно взятой биометрической системе.

 

6.4.2 Установка ПБФ осуществляется путем вызова функции инфраструктуры БиоАПИ (10.2.1) с последующим предоставлением данных о ПБУ (схема ПБУ, определенная в 7.16).

 

Примечание - Данный вызов функции стандартизован, но осуществляется, как правило, с помощью установочного приложения, а не обычного биометрического приложения.

 

6.4.3 При установке нового ПБУ его обычно активизируют путем инсталляционного процесса, используя зависимые от реализации механизмы, а затем ПБУ может использовать механизм обратного вызова (9.2.2) для получения информации от инфраструктуры об установленных ПБФ.

 

Примечание - Данная функция может быть вызвана в любое время для того, чтобы ПБУ мог обновлять любую внутреннюю информацию, которую он может поддерживать. Формат и содержание (и даже существование) такой внутренней информации не стандартизированы и полностью определяются ПБУ.

 

6.4.4 После успешной установки или удаления ПБУ или ПБФ, следующий запрос от любого приложения или ПБУ, касающийся информации реестра компонентов, должен возвращать правильную информацию в отношении недавно установленного ПБУ или ПБФ и не возвращать информацию об удаленном ПБУ или ПБФ (8.1.4 и 8.1.10).

 

6.4.5 Не существует механизмов для информирования установленного ПБУ (используемого или неиспользуемого в настоящее время) об установке новых ПБФ или удалении существующих ПБФ (6.4.6). Ответственность за определение того, какие ПБФ установлены, возложена исключительно на ПБУ, использующего функцию обратного вызова перечня ПБФ (9.2.2).

 

6.4.6 Функция ПИП БиоАПИ BioAPI_Util_InstallBsp (10.2.1), которую вызывает приложение (например, мастер удаления), сообщает инфраструктуре БиоАПИ, что ПБУ был удален. Инфраструктура БиоАПИ обновляет реестр компонентов. Не существует стандартизованных функций для уведомления отдельных ПБУ, находящихся в рабочей памяти выполняющихся приложений, об удалении используемых ими ПБФ, и эффект удаления используемого ПБУ ПБФ зависит от исполнения.

 

Примечание - Удаление ПБФ обычно не вызывает удаления связанных с ним аппаратных средств или драйверов модулей БиоАПИ, так как эти драйверы и аппаратные средства могут также использоваться другими установленными ПБФ. Данная область находится вне стандартизации БиоАПИ и зависит от исполнения ПБФ.

 

 

      6.5 Загрузка ПБУ и присоединение модуля БиоАПИ

6.5.1 Действия биометрического приложения должны выполняться в следующем порядке:

 

a) инициализация доступа к инфраструктуре БиоАПИ (8.1.1);

 

b) идентификация и загрузка одного или более ПБУ (8.1.4 и 8.1.5) с возможным указанием обработчика событий для получения обратных вызовов при возникновении связанных с данным ПБУ определенных событий (7.26), например подключение или удаление модуля БиоАПИ, к которому может быть осуществлен доступ через данного ПБУ. Когда обработчики события обратного вызова определены, приложение будет получать уведомления о всех подключениях и отключениях, о которых сообщается соответствующим ПБУ;

 

c) присоединение единственного ПБУ вместе с одним БиоАПИ каждой категории (к которому ПБУ имеет прямой или косвенный доступ).

 

Примечание - Под присоединением ПБУ подразумевается установление присоединенной сессии ПБУ;

 

d) после присоединения (со ссылкой на присоединенный ПБУ) могут быть выполнены остальные вызовы функций БиоАПИ, которые будут обработаны присоединенным ПБУ с использованием идентифицированных модулей БиоАПИ требуемой категории.

 

Примечание 1 - Приложение может устанавливать несколько одновременно присоединенных сессий с разными ПБУ (или с тем же ПБУ).

 

Примечание 2 - Пример кода последовательных вызовов приведен в приложении D.

 

6.5.2 Загрузка ПБУ (8.1.5) дает приложению возможность получать полную информацию о модулях БиоАПИ, к которым может быть осуществлен доступ (прямой или косвенный) через данного ПБУ или с помощью запроса инфраструктуры, или в соответствии с уведомлением обратного вызова от ПБУ (или двумя способами).

 

6.5.3 Модуль БиоАПИ может использоваться только в случае, если аппаратные и программные средства, от которых он зависит, в данное время подключены к системе. В модели это называется "подключенным состоянием модуля БиоАПИ".

 

6.5.4 Когда приложение присоединяет ПБУ, оно может указать, что модуль БиоАПИ, выбираемый для какой-либо конкретной категории модуля БиоАПИ, должен быть определен ПБУ. Это называют "выбором модуля БиоАПИ по умолчанию с использованием параметра BioAPI_DONT_CARE".

 

Примечание - Единственное различие между выбором конкретного доступного модуля БиоАПИ (находящегося в подключенном состоянии) данной категории и выбором модуля БиоАПИ по умолчанию с использованием параметра BioAPI_DONT_CARE заключается в том, что, в последнем случае, решение о выборе используемого модуля БиоАПИ принимает ПБУ.

 

6.5.5 Уведомление о событии подключения каждого модуля БиоАПИ содержит его схему.

 

Примечание - Возможно, что физическое подключение некоторых частей аппаратных средств (например, смарт-карта, которая может поддерживать как архивирование, так и сопоставление) будет вызывать два отдельных различных уведомления. Приложение может не связать эти два события с одним физическим устройством.

 

6.5.6 В ответ на функцию BioAPI_BSPAttach приложение должно выбрать не более одного модуля БиоАПИ каждой категории, который находится в настоящее время в подключенном состоянии (или выбрать BioAPI_DONT_CARE) и управляется данным ПБУ или связанным с ним ПБФ. Затем ПБУ обеспечивает доступ к модулю (для модулей БиоАПИ, управляемых напрямую) или взаимодействует со связанным с ним ПБФ для получения доступа к данному модулю БиоАПИ.

 

6.5.7 Информационное содержание уведомления об удалении должно включать в себя (7.28):

 

a) ИД модуля БиоАПИ;

 

b) тип события (удаление);

 

c) контекст обратного вызова.

 

6.5.8 Уведомление о событии удаления модуля БиоАПИ, который является частью набора модулей, используемых в текущей присоединенной сессии, необходимо для того, чтобы приложение больше не производило вызовов функций, кроме BioAPI_BSPDetach  и BioAPI_GetBIRFromHandle.

 

 

      6.6 Управление модулями БиоАПИ

6.6.1 В ПИП, ИПУи ИПФ БиоАПИ доступна функция (8.1.12 и 9.3.1.7), которая позволяет приложению управлять модулем БиоАПИ через ПБУ. ПБУ не обязательно должен поддерживать данную функцию, но если такая функция поддерживается, ПБУ идентифицирует наличие такой поддержки в своей схеме (7.16 и 7.46).

 

6.6.2 Данная функция содержит конкретные управляющие коды, содержание буфера и возвращаемые значения, но их формат и значение определяются конструкцией УУИД и могут быть индивидуальны для каждого изготовителя. Настоящий стандарт не устанавливает требований к УУИД, поддерживающим данную функцию.

 

 

      6.7 Структура и обработка ЗБИ

 

      

 

      6.7.1 Структура ЗБИ

ЗБИ, использующая ПИП и ИПУ, является структурой данных Си, сохраненной в памяти компьютера с использованием указателей на различные элементы. Структура ЗБИ, рекомендуемая для хранения и передачи между компьютерными системами, представляет собой сериализацию структуры данных Си и изображена на рисунке 3. В формате, рекомендуемом для хранения и передачи, к полям, определенным в структуре данных Си, добавляются поля длины.

 

Примечание - Формат постоянного клиента БиоАПИ, рекомендуемый для хранения и передачи ЗБИ БиоАПИ, приведен в приложении В. Для представления ЗБИ БиоАПИ в ПИП и ИПУ используется структура данных, определенная в 7.4.

 

 

Рисунок 3 - Запись биометрической информации

СБЗ содержит информацию о содержании последующего ББД.

 

ББД содержит биометрический образец, формат которого определен полем "ИД формата" в СБЗ. Данный формат может быть стандартным или внутренним.

 

Примечание - Стандартные форматы ББД определены в ISO/IEC 19794 [5].

 

БЗИ является необязательным (нулевое поле длины БЗИ указывает на отсутствие данного блока) и содержит параметры, связанные с использованием цифровой подписи и/или шифрованием ЗБИ. Формат БЗИ определяется полем "Формат БЗИ" в СБЗ. Поле "Тип данных ЗБИ" указывает, использует ли ЗБИ цифровую подпись и/или является ли ББД зашифрованным (7.9).

 

Первое поле длины указывает длину всей ЗБИ без учета самого поля. Второе поле длины, расположенное после заголовка и перед ББД, указывает длину ББД без учета самого поля длины. Третье поле длины, расположенное после ББД и перед БЗИ, указывает длину БЗИ без учета самого поля длины.

 

 

      6.7.2 Обработка данных ЗБИ

При создании новой ЗБИ, ПБУ возвращает к ней дескриптор. Большинство локальных операций может быть выполнено без перемещения ЗБИ из ПБУ. (Так как ЗБИ могут быть достаточно большими, это является преимуществом при выполнении различных операций). Однако если приложению необходимо управлять ЗБИ (сохранить ее в базе данных приложения, передать другому ПБУ или переслать на сервер для верификации/идентификации, возможно, через инфраструктуру с использованием ISO/IEC 24708 [6]), оно может запрашивать ЗБИ с использованием дескриптора (функции BioAPI_GetBIRFromHandle). Если требуется только информация заголовка, она может быть получена с использованием функции BioAPI_GetHeaderFromHandle.

 

Передача ЗБИ в качестве входного параметра функции БиоАПИ может быть реализована одним из следующих трех способов:

 

a) ссылкой на ее дескриптор (если она находится в вызванном ПБУ);

 

b) ссылкой на ее ключевое значение (УУИД) в открытой базе данных ЗБИ (управляемой вызванным ПБУ);

 

c) предоставлением самой ЗБИ с использованием структуры данных BioAPI_BIR Си.

 

 

      7 Типы и макросы БиоАПИ

 

 

      7.1 Макрос БиоАПИ

Определение соглашения о вызовах БиоАПИ:

 

 

#ifdef (WIN32)

#define BioAPI_stdcall

#else

#define BioAPI

#endif

 

Примечание - Взаимодействие программных продуктов разных изготовителей в общем случае зависит от выбранного (иногда в соответствии с установками в заголовке Си) представления в памяти (например, заполнение промежутков между элементами данных, механизм передачи параметров и использование регистров или стеков). Многие операционные системы выбирают один из вариантов по умолчанию, который и должен использоваться. Если не существует выбранных установок по умолчанию, необходимо использовать опцию представления структур данных без заполнения промежутков между элементами данных.

 

 

      7.2 Тип BioAPI_BFP_LIST_ELEMENT

7.2.1 Данный тип определяет ПБФ, представляя его категорию и УУИД. При запросе о поддерживаемых ПБФ, ПБУ возвращается список.

 

 

 

 

 

typedef struct bioapi_bfp_list_element

{

 

BioAPI_CATEGORY BFPCategory;

 

BioAPI_UUID BFPUuid;

 

} BioAPI_BFP_LIST_ELEMENT;

 

 

       

7.2.2 Определения

 

BFPCategory - определяет категорию модуля БиоАПИ, поддерживаемую ПБФ.

 

BFPUuid - УУИД ПБФ в реестре компонентов.

 

 

      7.3 Тип BioAPI_BFP_SCHEMA

7.3.1 Информация о ПБФ, содержащаяся в реестре компонентов.

 

 

 

typedet struct bioapi_bfр_schema {

 

BioAPI_UUID BFPUuid;

 

BioAPI_CATEGORY BFPCategory;

 

BioAPI_STRING BFPDescription;

 

uint8_t*Path;

 

BioAPI_VERSION SpecVersion;

 

BioAPI_STRING ProductVersion;

 

BioAPI_STRING Vendor;

 

BioAPI_BIR_BIOMETRIC_DATA_FORMAT *BFPSupportedFormats;

 

uint32_tNumSupportedFormats;

 

BioAPI_BIR_BIOMETRIC_TYPE FactorsMask;

 

BioAPI_UUID BFPPropertylD;

 

BioAPI_DATA BFPProperty;

} BioAPI_BFP_SCHEMA;

 

7.3.2 Определения

BFPUuid - УУИД ПБФ.

 

BFPCategory - определяет категорию модуля БиоАПИ, поддерживаемую ПБФ.

 

BFPDescription - строка с нулевым символом на конце, содержащая текстовое описание ПБФ.

 

Path - указатель на строку с нулевым символом на конце, содержащую путь к файлу ПБФ, включая название файла. Путь к файлу может быть записан в виде адреса страницы URL. Символьная строка должна содержать символы, закодированные в формате UTF-8 в соответствии с ИСО/МЭК 10646.

 

Примечание - Если в вызове функции используется BioAPI_BFP_SCHEMA, принимающий компонент выделяет память для элемента схемы Path, а вызывающий компонент освобождает память.

 

SpecVersion - номер редакции и номер поправки или изменений редакции стандарта, в соответствии с которой был разработан ПБФ.

 

Примечание - Требования к ПБФ будут установлены в следующих частях комплекса стандартов 19784.

 

ProductVersion - строка версии программного обеспечения ПБФ.

 

Vendor - строка с нулевым символом на конце, содержащая название изготовителя ПБФ.

 

BFPSupportedFormats - указатель на массив структур BioAPI_BIR_BIOMETRIC_DATA_FORMAT, определяющий поддерживаемые форматы ББД.

 

NumSupportedFormats - число поддерживаемых форматов, содержащихся в BFPSupportedFormats.

 

FactorsMask - маска, указывающая, какие биометрические типы поддерживаются ПБФ.

 

BFPPropertylD - УУИД формата передаваемого свойства ПБФ.

 

BFPProperty - адрес и длина буфера памяти, содержащего свойства ПБФ. Формат и содержание свойства ПБФ могут быть определены изготовителем или установлены в соответствующем стандарте.

 

 

      7.4 Тип BioAPI_BIR

7.4.1. BioAPI_BIR представляет собой контейнер биометрических данных и состоит из BioAPI_BIR_HEADER, ББД и (необязательно) БЗИ. ББД может содержать исходные данные образца, частично обработанные (промежуточные) данные или полностью обработанные биометрические данные. BioAPI_BIR может использоваться для регистрации пользователя (при этом он хранится постоянно) или для верификации или идентификации пользователя (при этом он используется кратковременно).

 

7.4.2 ББД и БЗИ представляют собой целое число октетов и имеют переменную длину до 2**32-1 октетов. Если БЗИ содержит цифровую подпись, она вычисляется одновременно для BioAPI_BIR_Header и ББД.

 

 

 

typedef struct Bioapi_bir {

 

BioAPI_BIR_HEADER Header;

 

BioAPI_DATA BiometricData;

 

BioAPI_DATA SecurityBlock; /* Если БЗИ отсутствует, то SecurityBlock.Data=NULL */

} BioAPI_BIR;

 

Примечание 1 - ЗБИ БиоАПИ содержит информацию, необходимую для формата постоянного клиента ЕСФОБД определенную в ИСО/МЭК 19785-1.

 

Примечание 2 - Форматы BiometricData и SecurityBlock определены соответственно элементами BioAPI_BIR_BIOMETRIC_DATA_FORMAT и BioAPI_BIR_SECURITY_BLOCK_FORMAT в заголовке BioAPI_BIR_HEADER.

 

Примечание 3 - ЕСФОБД позволяет использовать форматы ЗБИ, отличающиеся от формата, поддерживаемого БиоАПИ. Преобразование между форматом ЗБИ БиоАПИ и другими форматами ЗБИ определено в ИСО/МЭК 19785-1.

 

 

 

      7.5 Тип BioAPI_BIR_ARRAY_POPULATION

Данный тип представляет собой массив ЗБИ, используемый при идентификации (в качестве входного параметра для функций BioAPI_Identify или BioAPI_IdentifyMatch, как часть BioAPI_IDENTIFY_POPULATION).

 

 

 

typedef struct bioapi_bir_array_population {

 

uint32_t NumberOfMembers;

 

BioAPI_BIR *Members; /* указатель на массив ЗБИ */

} BioAPI_BIR_ARRAY_POPULATION;

 

 

      

     

 

      7.6 Тип BioAPI_BIR_BIOMETRIC_DATA_FORMAT

Данный тип определяет формат данных, содержащихся в элементе БиоАПИ BiometricData "непрозрачного" блока биометрических данных (ББД) ЗБИ.

 

 

 

typedef struct bioapi_bir_biometric_data_format {

 

uint16_t FormatOwner;

 

uint16_tFormatType;

} BioAPI_BIR_BIOMETRIC_DATA_FORMAT;

 

Примечание 1 - Значения FormatOwner (владелец формата) присваиваются и регистрируются органами регистрации ЕСФОБД. Значения FormatType (тип формата) присваиваются владельцем формата и при необходимости тип формата может быть зарегистрирован. Информация о регистрации приведена в ИСО/МЭК 19785-2.

 

Примечание 2 - BioAPI_BIR_BIOMETRIC_DATA_FORMAT соответствует комбинации "CBEFF_BDB_format_owner" и "CBEFF_BDB_format_type", установленных в ИСО/МЭК 19785-1.

 

Примечание 3 - Данная структура используется обычно в заголовке ЗБИ, однако она также используется как входной параметр для функций, осуществляющих получение биометрических данных.

 

 

      7.7 Тип BioAPI_BIR_BIOMETRIC_PRODUCT_ID

Данный тип предоставляет идентификатор продукта (ИДП) для ПБУ, который разработал ББД в ЗБИ (элемент BiometricData).

 

 

 

 

typedef struct bioapi_bir_biometric_product_ID {

 

 

uint16_t ProductOwner;

 

 

uint16_tProductType;

 

} BioAPI_BIR_BIOMETRIC_PRODUCT_ID;

 

#define BioAPI_NO_PRODUCT_OWNER_AVAILABLE

(0x0000)

#define BioAPI NO_PRODUCT_TYPE_AVAILABLE

(0x0000)

 

Значение NO_VALUE_AVAILABLE следует отражать установкой значений всех компонентов в ноль. Это значение следует использовать только для ЗБИ, которая первоначально была получена не от ПБУ БиоАПИ, а из другого источника, и была преобразована в ЗБИ БиоАПИ. БПУ не должны использовать это значение.

 

Значения ProductOwner (владелец продукта) присваиваются и регистрируются органами регистрации ЕСФОБД в качестве идентификаторов биометрической организации. Информация об органах регистрации приведена в ИСО/МЭК19785-2. Тип продукта присваивается владельцем продукта и может быть зарегистрирован.

 

Примечание 1 - ИД продуктов аналогичны ИД форматов и процессы их регистрации идентичны. Изготовитель может зарегистрировать значение владельца формата/продукта (идентификатор биометрической организации), которое может использоваться в обоих полях.

 

Примечание 2 - BioAPI_BIR_BIOMETRIC_PRODUCT_ID соответствует "CBEFF_BDB_product_owner" и "CBEFF_BDB_product_type", приведенным в ИСО/МЭК 19785-1.

           

 

           

 

      7.8 Тип BioAPI_BIR_BIOMETRIC_TYPE (БиоАПИ 2.0)

          

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.

 

       

Данный тип представляет собой маску, описывающую набор биометрических типов (факторов), содержащихся в рамках ЗБИ БиоАПИ или поддерживаемых ПБУ.

 

 

 

typedef uint32_t BioAPI_BIR_BIOMETRIC_TYPE;

 

#define BioAPI_NO_TYPE_AVAILABLE

(0x00000000)

#define BioAPI_TYPE_MULTIPLE

(0x00000001)

#define BioAPI_TYPE_FACIAL_FEATURES

(0x00000002)

#define BioAPI_TYPE_VOICE

(0x00000004)

#define BioAPI_TYPE_FINGERPRINT

(0x00000008)

#define BioAPI_TYPE_IRIS

(0x00000010)

#define BioAPI_TYPE_RETINA

(0x00000020)

#define BioAPI_TYPE_HAND_GEOMETRY

(0x00000040)

#define BioAPI_TYPE_SIGNATURE_DYNAMICS

(0x00000080)

#define BioAPI_TYPE_KEYSTOKE_DYNAMICS

(0x00000100)

#define BioAPI_TYPE_LIP_MOVEMENT

(0x00000200)

#define BioAPI_TYPE_THERMAL_FACE_IMAGE

(0x00000400)

#define BioAPI_TYPE_THERMAL_HAND_IMAGE

(0x00000800)

#define BioAPI_TYPE_GAIT

(0x00001000)

#define BioAPI_TYPE_OTHER

(0x40000000)

#define BioAPI_TYPE_PASSWORD

(0x80000000)

 

Примечание 1 - BioAPI_TYPE_MULTIPLE используется для обозначения того, что биометрические образцы, содержащиеся в ББД (BiometricData ЗБИ), включают в себя образцы, полученные от биометрических сканеров разных типов (например, данные отпечатков пальцев и изображения лица). Расположение индивидуальных образцов в ББД определяет владелец формата и идентифицируется значением типа формата.

 

Примечание 2 - Значение NO_VALUE_AVAILABLE указывается установкой нулевого значения. Данное значение должно использоваться в том случае, если для ЗБИ, которые первоначально не были созданы ПБУ БиоАПИ, а были преобразованы в ЗБИ БиоАПИ, информация о биометрическом типе недоступна в записи первоначального источника. Преобразованные ЗБИ, чьи биометрические типы не соответствуют ни одному из определенных типов, должны использовать значение BioAPI_TYPE_OTHER.

 

Примечание 3 - BioAPI_BIR_BIOMETRIC_TYPE соответствует "CBEFF_BDB_biometric_type" по ИСО/МЭК 19785-1.

 

(Измененная редакция, Изм. N 1).

 

 

      7.9 Тип BioAPI_BIR_DATA_TYPE

7.9.1 BioAPI_BIR_DATA_TYPE (тип данных ЗБИ БиоАПИ) используется для решения следующих задач:

 

a) определения типа биометрических образцов (исходные, промежуточные или обработанные), которые содержатся в ББД;

 

b) определения того, зашифрована ли ЗБИ и/или использует ли она цифровую подпись;

 

с) определения того, включено или нет значение индекса в качестве составной части заголовка ЗБИ.

 

Примечание - Если ЗБИ зашифрована ПБУ, то она может не определяться приложением или другим ПБУ.

 

7.9.2 Должен быть установлен один из следующих трех признаков: "исходный" (RAW), "промежуточный" (INTERMEDIATE) или "обработанный" (PROCESSED). Если ЗБИ, содержащая данные ЗБИ с установленными различными признаками, передается в инфраструктуру БиоАПИ в качестве параметра вызываемой функции, должно возвращаться значение ошибки BioAPIERR_INVALID_BIR.

 

Примечание - ЗБИ, которые первоначально не были созданы ПБУ БиоАПИ, а были преобразованы из другого формата данных и для которых информация о типе образца недоступна, могут не устанавливать данный признак (ПБУ БиоАПИ должны устанавливать один из вышеуказанных признаков).

 

7.9.3 Установка признаков "зашифровано" (ENCRYPTED) и "подписано" (SIGNED) является необязательной.

 

7.9.4 Признак "индекс" (INDEX_PRESENT) следует устанавливать в случае, если индекс присутствует в заголовке ЗБИ, и не следует устанавливать в случае, если индекс отсутствует в заголовке ЗБИ.

 

 

 

 

typedef uint8_t BioAPI_BIR_DATA_TYPE;

 

 

#define BioAPI_BIR_DATA_TYPE_RAW

(0x01)

 

#define BioAPI_BIR_DATA_TYPE_INTERMEDIATE

(0x02)

 

#define BioAPI_BIR_DATA_TYPE_PROCESSED

(0x04)

 

#define BioAPI_BIR_DATA_TYPE_ENCRYPTED

(0x10)

 

#define BioAPI_BIR_DATA_TYPE_SIGNED

(0x20)

 

#define BioAPI_BIR_INDEX_PRESENT

(0x80)

 

Примечание - BioAPI_BIR_DATA_TYPE соответствует комбинации "CBEFF_BDB_processed_level" и "CBEFF_BIR_integrity_options" по ИСО/МЭК 19785-1.

 

 

      7.10 Тип BioAPI_BIR_HANDLE

Данный тип является дескриптором для обращения к ЗБИ БиоАПИ, существующей в ПБУ.

 

Примечание - Дескриптор, определяющий ЗБИ, имеет положительное ненулевое значение. Другие значения BioAPI_BIR_HANDLE (в настоящее время только минус 1 и минус 2) зарезервированы для индикации исключений.

 

 

 

 

typedef int32_t BioAPI_BIR_HANDLE;

 

 

#define BioAPI_INVALID_BIR_HANDLE

(-1)

 

#define BioAPI_UNSUPPORTED_BIR_HANDLE

(-2)

 

 

      

      

 

      7.11 Тип BioAPI_BIR_HEADER

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

 

 

 

typedef struct bioapi_bir_header {

 

BioAPI_VERSION_HeaderVersion;

 

BioAPI_BIR_DATA_TYPE Type;

 

BioAPI_BIR_BIOMETRIC_DATA_FORMAT Format;

 

BioAPI_QUALITY Quality;

 

BioAPI_BIR_PURPOSE Purpose;

 

BioAPI_BIR_BIOMETRIC_TYPE FactorsMask;

 

BioAPI_BIR_BIOMETRIC_PRODUCT_ID ProductlD;

 

BioAPI_DTG CreationDTG;

 

BioAPI_BIR_SUBTYPE Subtype;

 

BioAPI_DATE ExpirationDate;

 

BioAPI_BIR_SECURITY_BLOCK_FORMAT SBFormat;

 

BioAPI_UUID Index;

} BioAPI_BIR_HEADER;

 

Примечание 1 - BioAPI_BIR_HEADER соответствует СБЗ в ЕСФОБД по ИСО/МЭК 19785-1.

 

Примечание 2 - Срок годности (Expiration date) соответствует элементу "Valid to" поля "CBEFF_BDB_validity_period" по ИСО/МЭК 19785-1. Поле признака (Index) соответствует полю "CBEFF_BDB_index" по ИСО/МЭК 19785-1.

 

Примечание 3 - Возможно существование ЗБИ БиоАПИ, которая не была создана ПБУ, а была преобразована из другого формата данных. В этом случае некоторые из полей заголовка, которые являются необязательными в ЕСФОБД (ИСО/МЭК 19785-1), но требуются БиоАПИ, могут отсутствовать. В этом случае для данных полей предусмотрено значение NO_VALUE_AVAILABLE или значение по умолчанию (в соответствующих этим полям структурах данных). Однако все ЗБИ, созданные ПБУ БиоАПИ, должны содержать корректные данные для этих полей и не должны использовать значение NO_VALUE_AVAILABLE (исключение составляют поля BioAPI_Quality и BioAPI_BIR_SUBTYPE, которые являются необязательным в заголовке ЗБИ БиоАПИ). Если ЗБИ, созданная не БиоАПИ, обозначена как входной параметр для ПБУ, ПБУ может возвратить ошибку "недействительная ЗБИ".

 

Примечание 4 - Формат хранения ЗБИ включает в себя точную длину поля, которая не является необходимой в структуре Си (приложение В относительно формата хранения ЗБИ).

 

 

      7.12 Тип BioAPI_BIR_PURPOSE

7.12.1 Данный тип определяет назначение создаваемой ЗБИ БиоАПИ (при использовании в качестве входного параметра к функциям БиоАПИ) или назначение имеющейся ЗБИ (при использовании в качестве выходного параметра функции БиоАПИ или в заголовке ЗБИ).

 

 

 

 

typedef uint8_tBioAPI_BIR PURPOSE;

 

 

#define BioAPI_PURPOSE_VERIFY

(1)

 

#define BioAPI_PURPOSE_IDENTIFY

(2)

 

#define BioAPI_PURPOSE_ENROLL

(3)

 

#define BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY

(4)

 

#define BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY

(5)

 

#define BioAPI_PURPOSE_AUDIT

(6)

 

#define BioAPI_NO_PURPOSE_AVAILABLE

(0)

 

Примечание - Условие BioAPI_NO_DATA_AVAILABLE (данные недоступны) указывается установкой значения в ноль. Данное значение используется только для тех ЗБИ, которые первоначально не сформированы ПБУ БиоАПИ, а были созданы другим источником и преобразованы в ЗБИ БиоАПИ. ПБУ не следует использовать данное значение.

 

7.12.2 Назначение ЗБИ (BioAPI_BIR_PURPOSE) используется двумя способами. Во-первых, оно используется как входной параметр, чтобы дать возможность приложению указать ПБУ назначение итоговой ЗБИ, таким образом, давая возможность ПБУ выполнить соответствующую регистрацию и обработку, чтобы создать надлежащую ЗБИ для данного назначения. Во-вторых, оно используется в пределах заголовка ЗБИ, чтобы указать приложению (или ПБУ в течение последующих операций), какому назначению соответствует ЗБИ. Например, некоторые ПБУ используют различные форматы ББД в зависимости от их использования для верификации или идентификации; в последнем случае формат обычно включает в себя дополнительную информацию для увеличения скорости или точности. Многие ПБУ используют различные форматы данных в зависимости от их использования в качестве образца для непосредственной верификации или в качестве контрольного шаблона для будущих сопоставлений (при регистрации).

 

Примечание - Параметр BioAPI_BIR_PURPOSE в заголовке ЗБИ соответствует параметру CBEFF_BDB_purpose по ИСО/МЭК 19785-1. Названия параметров отличаются незначительно, так как ЗБИ БиоАПИ ограничена отдельной BDB, но семантика остается неизменной.

 

7.12.3 Ограничения на использование данных, содержащихся в ЗБИ конкретного назначения:

 

a) в заголовке ЗБИ может быть указано любое назначение;

 

b) назначения BioAPI_PURPOSE_VERIFY (верификация) и BioAPI_PURPOSE_IDENTIFY (идентификация) допустимы только в качестве входного параметра функции BioAPI_Capture;

 

c) назначения BioAPI_PURPOSE_ENROLL (регистрация), BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY (регистрация только для верификации) и BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY (регистрация только для идентификации) допустимы только в качестве входных параметров функций BioAPI_Capture, BioAPI_Enroll и BioAPI_Import (импортирование);

 

d) назначение BioAPI_PURPOSE_AUDIT (контроль) не является входным параметром функции, а используется только в заголовке ЗБИ;

 

e) функции BioAPI_Process (обработка), BioAPI_CreateTemplate (создать шаблон) и BioAPI_ProcessWithAuxData не используют назначение в качестве входного параметра, а считывают поле назначения из заголовка входного ЗБИ CapturedBIR (полученная ЗБИ);

 

f) функция BioAPI_Process (обработка) может принимать в качестве входных данных любую промежуточную ЗБИ с назначением BioAPI_PURPOSE_VERIFY и BioAPI_PURPOSE_IDENTIFY и должна возвращать ЗБИ с тем же назначением, что и входная ЗБИ;

 

g) функция BioAPI_CreateTemplate (создать шаблон) может принимать в качестве входных данных любую промежуточную ЗБИ с назначением: BioAPI_PURPOSE_ENROLL, BIOAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY, BIOAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY и должна возвращать ЗБИ с тем же назначением, что и входная ЗБИ;

 

h) если ЗБИ подходит для регистрации, верификации и идентификации, то возвращаемая ЗБИ должна иметь назначение BioAPI_PURPOSE_ENROLL.

 

 

      7.13 Тип BioAPI_BIR_SECURITY_BLOCK_FORMAT

Данный тип определяет формат данных, содержащихся в блоке безопасности (БЗИ) ЗБИ БиоАПИ (элемент блока безопасности).

 

 

 

typedef struct bioapi_bir_security_block_format {

 

uint16_t SecurityFormatOwner;

 

uint16_t SecurityFormatType;

} BioAPI_BIR_SECURITY_BLOCK_FORMAT;

 

Если признаки "шифрование" и "подпись" не установлены в поле BioAPI_BIR_DATA_TYPE заголовка ЗБИ, то параметры SecurityFormatOwner и SecurityFormatType должны быть установлены в 0х0000 и блок безопасности должен отсутствовать.

 

Значения SecurityFormatOwner присвоены и зарегистрированы регистрационными правами ЕСФОБД как идентификаторы биометрических организаций по ИСО/МЭК 19785-2. SecurityFormatType присвоен владельцем формата безопасности (биометрическая организация) и может быть зарегистрирован дополнительно.

 

Примечание 1 - ИД форматов безопасности аналогичны ИД форматов. Процесс регистрации ИД форматов безопасности аналогичен процессу регистрации ИД форматов. Изготовитель может зарегистрировать значение владельца формата/продукта/безопасности (идентификатор биометрической организации), что может быть использовано во всех связанных областях.

 

Примечание 2 - Содержание блока безопасности может включать в себя цифровую подпись или код аутентификационного сообщения (вычисленный как заголовок ЗБИ + ББД), параметры шифрования ББД (то есть алгоритмы шифрования, длина ключа) и/или целостные параметры ЗБИ (ИД алгоритмов, название ключа, версия).

 

Примечание 3 - Формат блока безопасности ЗБИ БиоАПИ в заголовке ЗБИ соответствует "CBEFF_SB_format_owner" и "CBEFF_SB_format_type" по ИСО/МЭК 19785-1.     

 

 

 

              

 

      7.14 Тип BioAPI_BIR_SUBTYPE (БиоАПИ 2.0)   

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.

                

7.14.1 Данный тип идентифицирует подтип в рамках типа ББД указанного в BioAPI_BIR_BIOMETRIC_TYPE. Значения подтипов определяются спецификациями данного типа ББД.

 

7.14.2 Каждый из флагов BioAPI_BIR_SUBTYPE_LEFT и BioAPI_BIR_SUBTYPE_RIGHT (ноль, один или оба) может быть установлен произвольно.

 

7.14.3 Может быть установлен один или ни одного из пяти подтипов пальца.

 

 

 

 

typedef uint8_tBioAPI_BIR SUBTYPE;

 

 

#define BioAPI_BIR_SUBTYPE_LEFT

(0x01)

 

#define BioAPI_BIR_SUBTYPE_RIGHT

(0x02)

 

#define BioAPI_BIR_SUBTYPE_THUMB

(0x04)

 

#define BioAPI_BIR_SUBTYPE_POINTERFINGER

(0x08)

 

#define BioAPI_BIR_SUBTYPE_MIDDLEFINGER

(0x10)

 

#define BioAPI_BIR_SUBTYPE_RINGFINGER

(0x20)

 

#define BioAPI_BIR_SUBTYPE_LITTLEFINGER

(0x40)

 

#define BioAPI_BIR_SUBTYPE_MULTIPLE

(0x80)

 

#define BioAPI_NO_SUBTYPE_AVAILABLE

(0x00)

 

Примечание 1 - Условие NO_VALUE_AVAILABLE (значение недоступно) указывается присвоением значения ноль. Для ЗБИ, которые не были первоначально созданы ПБУ БиоАПИ, а были преобразованы из другого формата данных и для которых информация о подтипе недоступна, допускается данное значение не устанавливать.

 

Примечание 2 - BioAPI_BIR_SUBTYPE_соответствуют "CBEFF_BDB_biometric_subtype" по ИСО/МЭК 19785-1.

 

Примечание 3 - Данная структура прежде всего используется в заголовке ЗБИ, однако она также используется как входной параметр для функций получения биометрических данных. Значение BioAPI_NO_SUBTYPE_AVAILABLE используется в заголовке ЗБИ, если данное поле неприменимо или информация недоступна. Значение BioAPI_NO_SUBTYPE_AVAILABLE также используется как параметр функции, если приложение позволяет ПБУ определить, какой тип данных будет получен.

 

Подраздел 7.14. (Измененная редакция, Изм. N 1).

 

 

 

      7.15 Тип Вio_АРI_ВООL

Данный тип используется для индикации истинного или ложного значения условия.

 

 

 

 

typedef uint8_t BioAPI_BOOL;

 

 

#define BioAPI_FALSE

(0)

 

#define BioAPI_TRUE

(!BioAPI_FALSE)

 

 

      

 

     

 

      7.16 Тип BioAPI_BSP_SCHEMA (БиоАПИ 2.0)

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.

           

7.16.1 Данный тип включает в себя информацию о ПБУ, содержащуюся в реестре компонентов БиоАПИ.

 

 

 

typedef struct bioapi_bsp_schema {

 

BioAPI_UUID BSPUuid;

 

BioAPI_STRING BSPDescription;

 

uint8_t *Path;

 

BioAPI_VERSION SpecVersion;

 

BioAPI_STRING ProductVersion;

 

BioAPI_STRING Vendor;

 

BioAPI_BIR_BIOMETRIC_DATA_FORMAT *BSPSupportedFormats;

 

uint32_t NumSupportedFormats;

 

BioAPI_BIR_BIOMETRIC_TYPE FactorsMask;

 

BioAPI_OPERATIONS_MASK Operations;

 

BioAPI_OPTIONS_MASK Options;

 

BioAPI_FMR PayloadPolicy;

 

uint32_t MaxPayloadSize;

 

int32_t DefaultVerifyTimeout;

 

int32_t DefaultldentifyTimeout;

 

int32_t DefaultCaptureTimeout;

 

int32_t DefaultEnrollTimeout;

 

int32_t DefaultCalibrateTimeout;

 

uint32_t MaxBSPDbSize;

 

uint32 t Maxldentify;

} BioAPI_BSP_SCHEMA;

 

           

Подраздел 7.16. (Измененная редакция, Изм. N 1).

 

7.16.2 Определения

 

BSPUuid - УУИД ПБУ.

 

BSPDescription - строка с нулевым символом на конце, содержащая текстовое описание ПБУ.

 

Path - указатель на строку с нулевым символом на конце, содержащую путь к файлу ПБФ, включая название файла. Путь к файлу может быть записан в виде адреса страницы URL. Символьная строка должна содержать символы, закодированные в формате UTF-8 в соответствии с ИСО/МЭК 10646.

 

Примечание - Если BioAPI_BSP_SCHEMA используется в вызове функции, компонент, получающий вызов, выделяет память для элемента схемы Path (путь к файлу), а вызывающий компонент освобождает память.

 

SpecVersion - номер редакции и номер поправки или изменений данной редакции спецификации БиоАПИ, для которой был разработан ПБУ.

 

ProductVersion - строка версии программного обеспечения ПБУ.

 

Vendor - строка с нулевым символом на конце, содержащая название изготовителя ПБУ.

 

BSPSupportedFormats - указатель на структуру BioAPI_BIR_BIOMETRIC_DATA_FORMAT, определяющую поддерживаемые форматы ББД.

 

NumSupportedFormats - число поддерживаемых форматов, содержащихся в BspSupportedFormats.

 

FactorMask - маска, указывающая биометрические типы, поддерживаемые ПБУ.

 

Operations - маска, указывающая операции, поддерживаемые ПБУ.

 

Options - маска, указывающая опции, поддерживаемые ПБУ.

 

PayloadPolicy - пороговое значение (минимальное значение ОЛС), используемое для принятия решения о выдаче полезной информации после успешной верификации.

 

MaxPayloadSize - максимальный размер полезной информации (в байтах), которую может принять ПБУ.

 

DefaultVerifyTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции верификации BioAPI_Verify в случае, когда время ожидания не определено приложением.

 

DefaultldentifyTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции идентификации BioAPI_Identify и BioAPI_IdentifyMatch в случае, когда время ожидания не определено приложением.

 

DefaultCaptureTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции захвата BioAPI_Capture в случае, когда время ожидания не определено приложением.

 

DefaultEnrollTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции регистрации BioAPI_Enroll в случае, когда время ожидания не определено приложением.

 

DefaultCalibrateTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для операций калибровки датчика в случае, когда время ожидания не определено приложением.

 

MaxBSPDbSize - максимальный размер управляемой ПБУ базы данных ЗБИ.

 

Примечание 1 - Применяется только в том случае, если ПБУ способен непосредственно управлять отдельным модулем архива.

 

Примечание 2 - Нулевое значение означает, что информация о размере базы данных не должна быть предоставлена по следующим трем причинам:

 

a) база данных не поддерживается;

 

b) существует возможность управления несколькими модулями (непосредственно или с использованием интерфейса ПБФ), каждый из которых может иметь различную максимальную длину и информация о данном модуле будет предоставлена как часть уведомления о подключении (часть схемы модуля);

 

c) поддерживается один модуль архива, но в данном параметре информация не предоставлена - она будет доступна в уведомлении о подключении.

Maxldentify - максимальное число людей, поддерживаемых функцией идентификации. Значение FFFFFFFF указывает на отсутствие ограничения.

 

7.16.3 Более подробное описание приведенных элементов и порядка записи информации ПБУ в реестр компонентов БиоАПИ приведено в 10.1.2 и 10.2.1.

 

 

      7.17 Тип BioAPI_CANDIDATE

Данный тип содержит одного кандидата из набора, возвращаемого функциями идентификации BioAPI_Identify или сопоставления BioAPI_IdentifyMatch и соответствующий успешному сопоставлению.

 

 

 

 

typedef struct bioapi_candidate {

 

BioAPI_IDENTIFY_POPULATION_TYPE Type;

 

union {

 

BioAPI_UUID *BIRInDataBase;

 

uint32_t *BIRInArray;

 

} BIR;

 

BioAPI_FMR FMRAchieved;

} BioAPI_CANDIDATE;

 

 

      

 

      

 

      7.18 Тип BioAPI_CATEGORY

Данное битовое поле описывает категорию ПБФ или модуля БиоАПИ. ПБФ или модуль БиоАПИ должен соответствовать только одной категории.

 

 

 

 

typedef uint32_t BioAPI_CATEGORY;

 

 

#define BioAPI_CATEGORY_ARCHIVE

(0x00000001)

 

#define BioAPI_CATEGORY_MATCHING_ALG

(0x00000002)

 

#define BioAPI_CATEGORY_PROCESSING_ALG

(0x00000004)

 

#define BioAPI_CATEGORY_SENSOR

(0x00000008)

 

Старший значимый бит зарезервирован и не указывает категорию ПБФ или модуля БиоАПИ.

 

 

      7.19 Тип BioAPI_DATA

7.19.1 Структура BioAPI_DATA используется для связывания длины (в байтах) с адресом произвольного блока непрерывной памяти.

 

 

 

typedef struct bioapi_data {

 

uint32_t Length; /* in bytes */

 

void *Data;

} BioAPI_DATA;

 

7.19.2 Определения

 

Length - длина буфера данных в байтах.

 

Data - указатель на начало буфера данных произвольной длины.

 

 

      7.20 Тип BioAPI_DATE

Данный тип определяет дату создания или срок действия ЗБИ.

 

 

 

 

typedef struct bioapi_date {

 

uint16_t Year; /* диапазон значений: 1900-9999 */

 

uint8_t Month; /* диапазон значений: 01-12 */

 

uint8_t Day; /* диапазон значений: 01-31, согласуется с Month, Year */

} BioAPI_DATE;

 

#define BioAPI_NO_YEAR_AVAILABLE (0)

 

#define BioAPI_NO_MONTH_AVAILABLE (0)

 

#define BioAPI_NO_DAY_AVAILABLE (0)

 

Условие BioAPI_NO_DATA_AVAILABLE (данные недоступны) указывается установкой нулевого значения. Если информация о дате, используемая в поле год - день - время (ГДВ) в заголовке ЗБИ, недоступна, то должно быть использовано значение NO_DATE_AVAILABLE.

 

Примечание 1 - 2000-й год представлен значением 2000.

 

Примечание 2 - При использовании ГДВ в качестве ExpirationDate в заголовке ЗБИ соответствует части "срок действия" параметра "CBEFF_BDB_validity_period" по ИСО/МЭК 19785-1.

 

Примечание 3 - Форматы даты соответствуют установленным в ИСО 8601 [2].

 

 

      7.21 Тип BioAPI_DB_ACCESS_TYPE

Данное битовое поле описывает необходимый уровень доступа биометрического приложения к управляемой ПБУ базе данных ЗБИ. ПБУ может использовать эту маску, чтобы определить, какую блокировку базы данных ЗБИ он должен обеспечить.

 

 

 

 

typedef uint32_t BioAPI_DB_ACCESS_TYPE;

 

 

#define BioAPI_DB_ACCESS_READ

(0x00000001)

 

#define BioAPI_DB_ACCESS_WRITE

(0x00000002)

 

 

      

     

 

      7.22 Тип BioAPI_DB_MARKER_HANDLE

Данный тип представляет собой дескриптор к маркеру базы данных ЗБИ.

 

Маркер является внутренней структурой данных, управляемой ПБУ, которая динамически указывает на запись в открытой базе данных ЗБИ, управляемой ПБУ. Дескриптор маркера создается и возвращается биометрическому приложению функциями BioAPI_DbOpen и BioAPI_DbGetBIR. Маркер содержит дескриптор открытой базы данных и позицию записи в этой базе. Все маркеры (и их дескрипторы) к открытой базе данных ЗБИ, хранимые биометрическим приложением, становятся недоступными при закрытии биометрическим приложением базы данных.

 

typedef uint32_t BioAPI_DB_MARKER_HANDLE;

 

 

      7.23 Тип BioAPI_DB_HANDLE

Данный тип представляет собой дескриптор к открытой базе данных ЗБИ, первоначально передаваемый ПБУ биометрическому приложению, а затем используемый данным приложением для обращения к базе данных через ПБУ.

 

 

 

 

typedef int32_t BioAPI_DB_HANDLE;

 

 

#define BioAPI_DB_INVALID_HANDLE

(-1)

 

#define BioAPI_DB_DEFAULT_HANDLE

(0)

 

#define BioAPI_DB_DEFAULT_UUID_PTR

(NULL)

 

 

      

     

 

      7.24 Тип BioAPI_DBBIR_ID

Данный тип определяет структуру, содержащую дескриптор базы данных ЗБИ, управляемой ПБУ и УУИД ЗБИ в данной базе данных.

 

 

 

typedef struct bioapi_dbbir_id {

 

BioAPI_DB_HANDLE DbHandle;

 

BioAPI_UUID KeyValue;

} BioAPI_DBBIR_ID;

 

Примечание - Данный тип используется как элемент параметра BioAPI_INPUT_BIR.

 

 

      7.25 Тип BioAPI_DTG

Данный тип определяет дату и время создания ЗБИ.

 

 

 

typedef struct bioapi DTG {

 

BioAPI_DATE Date;

 

BioAPI_TIME Time;

} BioAPI_DTG;

 

Примечание - ГДВ БиоАПИ в заголовке ЗБИ соответствует CBEFF_creation_date по ИСО/МЭК 19785-1.

 

 

      7.26 Тип BioAPI_EVENT

Данный перечислимый тип определяет виды событий, которые могут быть вызваны ПБУ, ПБФ или модулем БиоАПИ. Биометрическое приложение может определять функции обратного вызова обработчика событий типа BioAPI_EventHandler для получения и управления данными событиями. Функции обратного вызова регистрируются функцией BioAPI_BSPLoad. Например события, включающие в себя добавление (подключение) или удаление биометрического датчика. События являются асинхронными.

 

События BioAPI_NOTIFY_SOURCE_PRESEN и BioAPI_NOTIFY_SOURCE_REMOVED формируются устройством (модулем датчиков), которое способно определить доступен ли пользователь для предоставления биометрического образца (например, находится ли палец на сканере). BioAPI_NOTIFY_SOURCE_PRESENT показывает, что образец доступен, в то время как BioAPI_NOTIFY_SOURCE_REMOVED показывает, что образец более недоступен. Не требуется, чтобы данные события появлялись парами; несколько событий BioAPI_NOTIFY_SOURCE_PRESENT могут появляться последовательно.

 

 

 

 

typedef uint32_t BioAPI EVENT;

 

 

#define BioAPI_NOTIFY_INSERT

(1)

 

#define BioAPI_NOTIFY_REMOVE

(2)

 

#define BioAPI_NOTIFY_FAULT

(3)

 

#define BioAPI_NOTIFY_SOURCE_PRESENT

(4)

 

#define BioAPI_NOTIFY_SOURCE_REMOVED

(5)

 

 

      

     

 

      7.27 Тип BioAPI_EVENT_MASK

Данный тип определяет маску с позициями битов для каждого типа событий. Маска используется для разрешения и запрещения выдачи уведомлений о событиях и для указания, какие события поддерживаются ПБУ.

 

 

 

 

typedef uint32_t BioAPI EVENT MASK;

 

 

#define BioAPI_NOTIFY_INSERT_BIT

(0x00000001)

 

#define BioAPI_NOTIFY_REMOVE_BIT

(0x00000002)

 

#define BioAPI_NOTIFY_FAULT_BIT

(0x00000004)

 

#define BioAPI_NOTIFY_SOURCE_PRESENT_BIT

(0x00000008)

 

#define BioAPI_NOTIFY_SOURCE_REMOVED_BIT

(0x00000010)

 

Примечание - Когда используется БиоАПИ версии 2.0, иногда невозможно определить в маске событие подключения, возникающее в прикрепленной сессии ПБУ, из-за того, что событие может появиться после вызова функции BioAPI_BSPLoad и перед тем как может быть обработан любой вызов BioAPI_EnableEvents. Данная ситуация возникает из-за того, что для вызова функции BioAPI_EnableEvents требуется дескриптор, который возвращается функцией BioAPI_BSPAttach, а вызов функции BioAPI_BSPAttach должен следовать за вызовом функции BioAPI_BSPLoad. Событие подключения (INSERT) возникнет в ПБУ при вызове функции BioAPI_BSPLoad в случае, если модуль БиоАПИ уже "подключен", и это событие передастся приложению раньше, чем оно сможет вызвать функцию BioAPI_EnableEvents.

 

(Измененная редакция, Изм. N 1).

 

 

      7.28 Тип BioAPI_EventHandler

7.28.1 Данный тип представляет собой интерфейс обработчика событий, который должен поддерживать приложение, если необходимо получать асинхронные уведомления о событиях, таких как наличие биометрического образца или ошибка, обнаруженная ПБУ. Процесс обработки события регистрируется в инфраструктуре БиоАПИ в ходе выполнения функции BioAPI_BSPLoad. Данный обработчик события предназначен для всех общих событий, возникающих в загруженном ПБУ, во всех присоединенных сессиях. Уведомления об общих событиях обрабатываются через инфраструктуру БиоАПИ.

 

Функция обработки событий и любые функции, запрашивающие данную функцию (непосредственно или косвенно), не должны приводить к вызову функций БиоАПИ. Подобные циклические вызовы могут привести к их взаимной блокировке во многих ситуациях, поэтому обработчик события должен быть реализован без использования сервисов БиоАПИ (но функции получения списков могут использоваться в любое время).

 

BioAPI_EventHandler может быть вызван несколько раз в ответ на единственное событие, возникшее в присоединенном ПБУ. Обработчик события и вызывающее приложение должны прослеживать получение уведомлений о событии и игнорировать дублирующие уведомления. Уведомление о событии представляет собой следующую информацию:

 

 

 

typedef BioAPI_RETURN (BioAPI *BioAPI_EventHandler)

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_ID UnitlD,

 

void* AppNotifyCallbackCtx,

 

const BioAPI_UNIT_SCHEMA *UnitSchema,

 

BioAPI_EVENT EventType);

 

7.28.2 Определения

 

BSPUuid (входной) - УУИД ПБУ, инициирующего событие;

 

UnitID (входной) - ИД модуля БиоАПИ, связанного с событием;

 

AppNotifyCallbackCtx (входной) - общий указатель на контекстную информацию, которая предоставляется при вызове функции BioAPI_BSPLoad, устанавливающей обработчик событий;

 

UnitSchema (входной) - указатель на схему модуля БиоАПИ, связанного с данным событием;

 

EventType (входной) - тип произошедшего события BioAPI_EVENT.

 

(Измененная редакция, Изм. N 1).

 

 

      7.29 Тип BioAPI_FMR

32-разрядное целочисленное значение (N), которое указывает на вероятность ошибки ложного совпадения, равную N/(2
-1). Чем больше данное значение, тем больше вероятность ошибки ложного совпадения. Отрицательные значения используются в особых случаях. В настоящее время определено единственное отрицательное значение - минус 1.
 

 

 

typedef int32_t BioAPI_FMR;

 

#define BioAPI_NOT_SET (-1)

 

Примечание - ОЛС используется в БиоАПИ в качестве средства для установки порогов и возврата оценок совпадения (см. приложение С, раздел С.4).

 

 

      7.30 Тип BioAPI_FRAMEWORK_SCHEMA

7.30.1 Данный тип представляет собой схему структуры компонента инфраструктуры БиоАПИ для занесения компонентов БиоАПИ в реестр.

 

 

 

typedef struct bioapi_framework_schema {

 

BioAPI_UUID FrameworkUuid;

 

BioAPI_STRING FwDescription;

 

uint8_t *Path;

 

BioAPI_VERSION SpecVersion;

 

BioAPI_STRING ProductVersion;

 

BioAPI_STRING Vendor;

 

BioAPI_UUID FwPropertyld;

 

BioAPI_DATA FwProperty;

} BioAPI_FRAMEWORK_SCHEMA;

 

7.30.2 Описание

 

FrameworkUuid -УУИД компонента инфраструктуры.

 

FwDescription - строка с нулевым символом на конце, содержащая текстовое описание инфраструктуры.

 

Path - указатель на строку с нулевым символом на конце, содержащую путь и имя файла с исполняемым кодом инфраструктуры. Путь к файлу может быть записан в виде адреса страницы (URL). Данная строка должна состоять из символов по ИСО/МЭК 10646 кодировки UTF-8 (ИСО/МЭК 10646, приложение D).

 

Примечание - Если в вызове функции используется BioAPI_BFP_SCHEMA, принимающий компонент выделяет память для элемента схемы Path, а вызывающий компонент освобождает память.

 

SpecVersion - номер редакции и номер поправки или изменений редакции стандарта, в соответствии с которой был разработан ПБФ.

 

ProductVersion - строка версии программного обеспечения инфраструктуры.

 

Vendor - строка с нулевым символом на конце, содержащая название изготовителя инфраструктуры.

 

FwPropertylD - УУИД формата следующих свойств инфраструктуры.

 

FwProperty - адрес и длина буфера памяти, содержащего свойства инфраструктуры. Формат и содержание свойств инфраструктуры могут быть описаны изготовителем или указаны в стандарте.

 

7.30.3 Определение схемы структуры приведено в 10.1.1.     

 

      

 

     

 

      7.31 Тип BioAPI_GUI_BITMAP (БиоАПИ 2.0)

          

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.               

(Измененная редакция, Изм. N 1).     

 

7.31.1 Данная структура предоставляет собой графическое изображение для его отображения приложением.

 

 

 

typedef struct bioapi_gui_bitmap {

 

uint32_t Width; /* Ширина изображения в точках (число точек в горизонтальной линии) */

 

uint32_t Height; /* Высота изображения в точках (число точек в вертикальной линии) */

 

BioAPI_DATA Bitmap;

} BioAPI_GUI_BITMAP;

 

7.31.2 Определения

 

Bitmap - множество 8-битовых полутоновых точек (где "00" - черный и "FF" - белый), в котором данные считываются слева направо и сверху вниз следующим образом (таблица 1).

 

 

Таблица 1 - Формат битовой карты графического интерфейса пользователя

 

 

 

Позиция байта

Значение

Описание

0

Строка 0, пиксель 0

Первый пиксель первой строки

1

Строка 0, пиксель 1

Второй пиксель первой строки

 

Ширина - 1

Строка 0, пиксель (ширина - 1)

Последний пиксель первой строки

Ширина

Строка 1, пиксель 0

Первый пиксель второй строки

 

(Ширина
высоту) - 1
 

Строка (ширина - 1), пиксель (высота - 1)

Последняя строка, последний пиксель

 

Примечание - Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK и BioAPI_GUI_STREAMING_CALLBACK приведено в 7.36 и 7.37.

           

 

             

 

      7.32 Тип BioAPI_GUI_MESSAGE (БиоАПИ 2.0)

         

Данный подраздел применяется только при использовании версии стандарта БиоАПИ 2.0.     

 

Данная структура предоставляет сообщение для его отображения приложением.

 

typedef uint32_t BioAPI_GUI_MESSAGE;

 

Примечание - Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.

 

(Измененная редакция, Изм. N 1).

 

 

 

      

 

      7.33 Тип BioAPI_GUI_PROGRESS (БиоАПИ 2.0)

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.        

 

Данный тип представляет собой значение, указывающее приложению процент выполнения (окончания) осуществляемого ПБУ действия, предназначенное для отображения,

 

typedef uint8_t BioAPI_GUI_PROGRESS;

 

Примечание - Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.

 

(Измененная редакция, Изм. N 1).

           

 

     

 

      7.34 Тип BioAPI_GUI_RESPONSE (БиоАПИ 2.0)

         

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.          

 

Данный тип возвращает значение от биометрического приложения в процессе выполнения обратного вызова.

 

 

 

 

typedef uint8_t BioAPI_GUI_RESPONSE;

 

 

#define BioAPI_CAPTURE_SAMPLE (1) /* инструкция для ПБУ для получения образца */

 

#define BioAPI_CANCEL (2) /* отмена операции пользователем */

 

#define BioAPI_CONTINUE (3) /* выбор пользователя или приложения продолжить процесс */

 

#define BioAPI_VALID_SAMPLE (4) /* получен достоверный образец */

 

#define BioAPI_INVALID_SAMPLE (5) /* получен недостоверный образец */

 

Примечание - Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.

 

(Измененная редакция, Изм. N 1).

           

 

           

 

      7.35 Тип BioAPI_GUI_STATE (БиоАПИ 2.0)

           

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.       

 

Данный тип представляет собой битовое поле, указывающее состояние ГИП, а также то, какие другие значения параметров представлены в структуре BioAPI_GUI_STATE_CALLBACK (данную информацию ПБУ предоставляет приложению с помощью BioAPI_GUI_STATE_CALLBACK).

 

 

 

typedef uint32_t BioAPI_GUI_STATE;

 

#define BioAPI_SAMPLE_AVAILABLE (0x0001) /* образец зарегистрирован и доступен */

 

#define BioAPI_MESSAGE_PROVIDED (0x0002)/* сообщение для отображения, выданное ПБУ*/

 

#define BioAPI_PROGRESS_PROVIDED (0x0004)/* состояние процесса для отображения, выданное ПБУ */

 

Примечание - Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.

 

(Измененная редакция, Изм. N 1).

           

 

              

 

      7.36 Тип BioAPI_GUI_STATE_CALLBACK (БиоАПИ 2.0)

         

Данный подраздел применяется только при использовании версии БиоАПИ 2.0.

 

(Измененная редакция, Изм. N 1).

        

7.36.1 Данный тип представляет собой указатель на функцию обратного вызова, которую предоставляет приложение для того, чтобы дать возможность ПБУ передавать через инфраструктуру приложению информацию о состоянии графического интерфейса пользователя (ГИП) и получать ответы.

 

7.36.2 Функция

 

 

 

typedef BioAPI_RETURN (BioAPI *BioAPI_GUI_STATE_CALLBACK)

 

(void *GuiStateCallbackCtx,

 

BioAPI_GUI_STATE GuiState,

 

BioAPI_GUI_RESPONSE *Response,

 

BioAPI_GUI_MESSAGE Message,

 

BioAPI_GUI_PROGRESS Progress,

 

const BioAPI_GUI_BITMAP *SampleBuffer);

 

Возврат значения, отличающегося от BioAPI_OK (например, BioAPI_Enroll), приводит к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.

 

7.36.3 Параметры

 

GuiStateCallbackCtx (входной) - указатель на контекстную информацию, предоставленный инициатором запроса и возвращаемый его инициатору.

 

GuiState (входной) - индикация текущего состояния ПБУ по отношению к ГИП, а также индикация того, какие другие параметры являются доступными.

 

Response (выходной) - указатель на ответ приложения поставщику биометрической услуги при возврате от обратного вызова.

 

Message (входной/необязательный) - номер сообщения, подлежащего отображению пользователю. Номера и тексты сообщений не стандартизированы и зависят от ПБУ. GuiState указывает наличие параметра Message; если сообщения не могут быть переданы, параметр имеет нулевое значение.

 

Progress (входной/необязательный) - значение, которое указывает степень выполнения (в процентах) операции по созданию образца или ЗБИ. Значение может использоваться для отображения индикатора выполнения. Не все ПБУ поддерживают индикацию выполнения. GuiState указывает наличие значения параметра Progress в вызове; если степень выполнения не передается, параметр имеет нулевое значение.

 

SampleBuffer (входной/необязательный) - текущий буфер образца для приложения, подлежащий отображению. GuiState указывает наличие параметра SampleBuffer; если он не передается, параметр имеет нулевое значение.

 

Примечание - Описание интерфейса пользователя приведено в приложении С, раздел С.7.

           

 

                  

 

      7.37 Тип BioAPI_GUI_STREAMING_CALLBACK (БиоАПИ 2.0)

         

Данный подраздел применяется только при использовании номера версии БиоАПИ 2.0.

 

(Измененная редакция, Изм. N 1).

           

7.37.1 Данный тип представляет собой указатель на функцию обратного вызова, которую предоставляет приложение для того, чтобы дать возможность ПБУ передавать поток данных для отображения в виде последовательности битовых изображений через инфраструктуру приложению.

 

7.37.2 Функция

 

 

 

typedef BioAPI_RETURN (BioAPI *BioAPI_GUI_STREAMING_CALLBACK)

 

(void *GuiStreamingCallbackCtx,

 

const BioAPI_GUI_BITMAP *Bitmap);

 

Возврат значения, отличающегося от BioAPI_OK (например, BioAPI_Enroll), приведет к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.

 

7.37.3 Параметры

 

GuiStreamingCallbackCtx (входной) - указатель на контекстную информацию, предоставленный инициатором запроса и возвращаемый инициатору.

 

Bitmap (входной) - указатель на битовое изображение, которое должно быть отображено.

 

Примечание - Описание интерфейса пользователя приведено в приложении С, раздел С.7.

 

 

      7.38 Тип BioAPI_HANDLE

Данный тип представляет собой уникальный идентификатор, возвращаемый в ответ на вызов функции BioAPI_BSPAttach, который идентифицирует присоединенную сессию ПБУ БиоАПИ.

 

typedef uint32_t BioAPI_HANDLE;

 

При использовании БиоАПИ версии 2.1 нулевое значение не должно использоваться в качестве действительного значения дескриптора присоединенной сессии ПБУ. Все остальные 32-битовые беззнаковые целочисленные значения разрешены.

 

 

 

#define BioAPI_INVALID_BSP_HANDLE

(0)

 

Данное определение применимо только при использовании БиоАПИ версии 2.1.

 

(Измененная редакция, Изм. N 1).

 

 

      7.39 Тип BioAPI_IDENTIFY_POPULATION

Структура, используемая для идентификации набора ЗБИ, используется в качестве входного параметра функции BioAPI_Identify или BioAPI_IdentifyMatch.

 

 

 

typedef struct bioapi_identify_population {

 

BioAPI_IDENTIFY_POPULATION_TYPE Type;

 

union {

 

BioAPI_DB_HANDLE *BIRDataBase;

 

BioAPI_BIR_ARRAY_POPULATION *BIRArray;

 

} BIRs;

 

} BioAPI_IDENTIFY_POPULATION;

 

Если BioAPI_PRESET_ARRAY_TYPE определен в параметре Type, то параметр BIRArray должен быть выбран и установлен NULL.

 

 

      7.40 Тип BioAPI_IDENTIFY_POPULATION_TYPE

Данная структура определяет метод передачи ЗБИ функции BioAPI_Identify или BioAPI_IdentifyMatch в виде массива или с помощью указателя на базу данных.

 

 

 

 

typedef uint8_t BioAPI_IDENTIFY_POPULATION_TYPE;

 

 

#define BioAPI_DB_TYPE

(1)

 

#define BioAPI_ARRAY_TYPE

(2)

 

#define BioAPI_PRESET ARRAY_TYPE

(3)

 

 

      

     

 

      7.41 Тип BioAPI_INDICATOR_STATUS

Данная структура используется биометрическим приложением для получения и установки индикаторов устройств (модулей БиоАПИ), поддерживаемых ПБУ. Конкретная физическая форма этих индикаторов (и их наличие) зависит от исполнения.

 

 

 

 

typedef uint8_t BioAPI_INDICATOR_STATUS;

 

 

#define BioAPI_INDICATOR_ACCEPT

(1)

 

#define BioAPI_INDICATOR_REJECT

(2)

 

#define BioAPI_INDICATOR_READY

(3)

 

#define BioAPI_INDICATOR_BUSY

(4)

 

#define BioAPI_INDICATOR_FAILURE

(5)

 

 

      

     

 

      7.42 Тип BioAPI_INPUT_BIR

Данная структура предназначена для ввода ЗБИ БиоАПИ в ПИП, который может быть выполнен тремя способами путем передачи:

 

a) дескриптора ЗБИ;

 

b) ключа к ЗБИ в базе данных, управляемой ПБУ. Если DbHandle имеет нулевое значение, используется база данных, выбранная ПБУ. (Значение DbHandle возвращается, когда база данных ЗБИ открыта);

 

с) структуры ЗБИ БиоАПИ.

 

 

 

 

typedef struct bioapi_input_bir {

 

BioAPI_INPUT_BIR_FORM Form;

 

union {

 

BioAPI_DBBIR_ID*BIRinDb;

 

BioAPI_BIR_HANDLE *BIRinBSP;

 

BioAPI_BIR *BIR;

 

} lnputBIR;

} BioAPI_INPUT_BIR;

 

 

      

     

 

      7.43 Тип BioAPI_INPUT_BIR_FORM

Данный тип представляет собой значение, указывающее форму или метод, с помощью которых передается ЗБИ.

 

 

 

 

typedef uint8_t BioAPI_INPUT_BIR_FORM;

 

 

#define BioAPI_DATABASE_ID_INPUT

(1)

 

#define BioAPI_BIR_HANDLE_INPUT

(2)

 

#define BioAPI_FULLBIR_INPUT

(3)

 

Примечание - Данный тип используется как элемент BioAPI_INPUT_BIR.

 

 

      7.44 Тип BioAPI_INSTALL_ACTION

Данный тип определяет действие, которое будет совершено во время операций установки ПБУ.

 

 

 

 

typedef uint32_t BioAPI_INSTALL_ACTION;

 

 

#define BioAPI_INSTALL_ACTION_INSTALL

(1)

 

#define BioAPI_INSTALL_ACTION_REFRESH

(2)

 

#define BioAPI_INSTALL_ACTION_UNINSTALL

(3)

 

 

      

     

 

      7.45 Тип BioAPI_INSTALL_ERROR

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

 

 

 

typedef struct install_error{

 

BioAPI_RETURN ErrorCode;

 

BioAPI_STRING ErrorString;

} BioAPI_INSTALL_ERROR;

 

 

      

     

 

      7.46 Тип BioAPI_OPERATIONS_MASK

Данный тип представляет собой битовую маску, указывающую, какие операции поддерживаются ПБУ.

 

 

 

 

typedef uint32_t BioAPI_OPERATIONS_MASK;

 

 

#define BioAPI_ENABLEEVENTS

(0x00000001)

 

#define BioAPI_SETGUICALLBACKS

(0x00000002)

 

#define BioAPI_SUBSCRIBETOGUIEVENTS

(0x00000002)

 

#define BioAPI_CAPTURE

(0x00000004)

 

#define BioAPI_CREATETEMPLATE

(0x00000008)

 

#define BioAPI_PROCESS

(0x00000010)

 

#define BioAPI_PROCESSWITHAUXBIR

(0x00000020)

 

#define BioAPI_VERIFYMATCH

(0x00000040)

 

#define BioAPI_IDENTIFYMATCH

(0x00000080)

 

#define BioAPI_ENROLL

(0x00000100)

 

#define BioAPI_VERIFY

(0x00000200)

 

#define BioAPI_IDENTIFY

(0x00000400)

 

#define BioAPI_IMPORT

(0x00000800)

 

#define BioAPI_PRESETIDENTIFYPOPULATION

(0x00001000)

 

#define BioAPI_DATABASEOPERATIONS

(0x00002000)

 

#define BioAPI_SETPOWERMODE

(0x00004000)

 

#define BioAPI_SETINDICATORSTATUS

(0x00008000)

 

#define BioAPI_GETINDICATORSTATUS

(0x00010000)

 

#define BioAPI_CALIBRATESENSOR

(0x00020000)

 

#define BioAPI_UTILITIES

(0x00040000)

 

#define BioAPI_QUERYUNITS

(0x00100000)

 

#define BioAPI_QUERYBFPS

(0x00200000)

 

#define BioAPI_CONTROLUNIT

(0x00400000)

 

#define BioAPI_TRANSFORM

(0x00800000)

 

Определение BioAPI_SETGUICALLBACKS применяется только при использовании версии БиоАПИ 2.0. Определение BioAPI_SUBSCRIBETOGUIEVENTS применяется только при использовании версии БиоАПИ 2.1.

 

Данное определение BioAPI_TRANSFORM применимо только при использовании БиоАПИ версии 2.1.

 

Примечание - Данный тип используется как элемент BioAPI_BSP_SCHEMA.

 

(Измененная редакция, Изм. N 1).

 

 

      7.47 Тип BioAPI_OPTIONS_MASK

Данный тип представляет собой битовую маску, указывающую, какие опции поддерживаются ПБУ. Необязательные функции определяются в BioAPI_OPERATIONS_MASK и в этом разделе не приводятся.

 

typedef uint32_t BioAPI_OPTIONS_MASK;

#define BioAPI_RAW (0х00000001)

 

Если установлено, то ПБУ поддерживает возврат исходных/контрольных данных.

 

#define BioAPI_QUALITY_RAW (0х00000002)

 

Если установлено, то ПБУ поддерживает возврат значения качества (в заголовке ЗБИ) для исходных биометрических данных.

 

#define BioAPI_QUALITY_INTERMEDIATE (0х00000004)

 

Если установлено, то ПБУ поддерживает возврат значения качества (в заголовке ЗБИ) для промежуточных биометрических данных.

 

#define BioAPI_QUALITY_PROCESSED (0х00000008)

 

Если установлено, то ПБУ поддерживает возврат значения качества (в заголовке ЗБИ) для обработанных биометрических данных.

 

#define BioAPI_APP_GUI (0х00000010)

 

Если установлено, то ПБУ поддерживает управление ГИП приложением.

 

#define BioAPI_STREAMINGDATA (0х00000020)

           

Если задано, то ПБУ предоставляет потоковые данные ГИП. Данное определение применяется только при использовании версии БиоАПИ 2.0.

 

#define BioAPI_GUI_PROGRESS_EVENTS (0x00000020)     

Если задано, то ПБУ предоставляет потоковые данные ГИП. Данное определение применяется только при использовании версии БиоАПИ 2.1.

 

#define BioAPI_IDENTIFYINDICATOR (0x00200000)

           

Если задано, то ПБУ поддерживает индикацию выполнения в процессе идентификации. Данное определение применяется только при использовании версии БиоАПИ 2.1.

 

#define BioAPI_SOURCEPRESENT (0х00000040)

 

Если установлено, то ПБУ поддерживает обнаружение присутствия биометрической характеристики в биометрическом датчике.

 

#define BioAPI_PAYLOAD (0х00000080)

 

Если установлено, то ПБУ поддерживает перенос полезной информации (сохраняет полезную информацию при выполнении функций BioAPI_Enroll или BioAPI_Create Template и возвращает ее при успешном выполнении функций BioAPI_Verify или BioAPI_VerifyMatch).

 

#define BioAPI_BIR_SIGN (0х00000100)

 

Если установлено, то ПБУ возвращает ЗБИ с подписью.

 

#define BioAPI_BIR_ENCRYPT (0х00000200)

 

Если установлено, то ПБУ возвращает зашифрованные ЗБИ (часть ББД).

 

#define BioAPI_TEMPLATEUPDATE (0х00000400)

 

Если установлено, то ПБУ обновляет и предоставляет контрольный шаблон как часть операций регистрации или создания шаблона.

 

#define BioAPI_ADAPTATION (0х00000800)

 

Если установлено, то ПБУ поддерживает адаптацию ЗБИ в возвращаемых параметрах операций BioAPI_Verify или BioAPI_VerifyMatch.

 

#define BioAPI_BINNING (0х00001000)

 

Если установлено, то ПБУ поддерживает категоризацию (в операциях BioAPI_ldentify и BioAPI_IdentifyMatch).

 

#define BioAPI_SELFCONTAINEDDEVICE (0х00002000)

 

Если установлено, то ПБУ поддерживает автономное устройство.

 

#define BioAPI_MOC (0х0004000)

 

Если установлено, то ПБУ напрямую поддерживает сопоставление на смарт-карте.

 

#define BioAPI_SUBTYPE_TO_CAPTURE (0х00008000)

 

Если установлено, то ПБУ поддерживает спецификацию приложения с подтипом получения данных и будет действовать в соответствии с ней.

 

#define BioAPI_SENSORBFP (0х00010000)

 

Если установлено, то ПБУ поддерживает управление модулем датчика с помощью ПБФ.

 

#define BioAPI_ARCHIVEBFP (0х00020000)

 

Если установлено, то ПБУ поддерживает управление модулем архива с помощью ПБФ.

 

#define BioAPI_MATCHINGBFP (0х00040000)

 

Если установлено, то ПБУ поддерживает управление модулем алгоритмов сопоставления с помощью ПБФ.

 

#define BioAPI_PROCESSINGBFP (0х00080000)

 

Если установлено, то ПБУ поддерживает управление модулем алгоритмов обработки с помощью ПБФ.

 

#define BioAPI_COARSESCORES (0х00100000)

 

Если установлено, то ПБУ возвращает грубо квантованную оценку (см. приложение С, пункт С.4.6).

 

Примечание - Данный тип используется как элемент BioAPI_BSP_SCHEMA.

 

(Измененная редакция, Изм. N 1).

 

 

      7.48 Тип BioAPI_POWER_MODE

Данный тип представляет собой перечисление, определяющее типы режимов питания, которые может использовать ПБУ и присоединенные к нему устройства (модули БиоАПИ).

 

 

 

typedef uint32_t BioAPI_POWER_MODE;

 

#define BioAPI_POWER_NORMAL (1) /* Доступны все функции*/

 

#define BioAPI_POWER_DETECT (2) /* Способность обнаружить тип события (например - ввод пальца) */

 

#define BioAPI_POWER_SLEEP (3) /* Минимальный режим. Все функции выключены */

 

 

      

     

 

      7.49 Тип BioAPI_QUALITY

7.49.1 Данный тип представляет собой значение, указывающее относительное качество биометрических данных в ББД.

 

typedef int8_t BioAPI_QUALITY;

 

7.49.2 Результаты биометрического анализа зависят от качества биометрического образца. Так как принятого универсального определения качества не существует, БиоАПИ определяет следующую структуру для относительной количественной оценки эффекта влияния качества на использование ЗБИ (как предполагается средством реализации ПБУ). Оценки, выдаваемые ПБУ, основаны на назначении (BioAPI_BIR_PURPOSE), определенном приложением (например, BioAPI_PURPOSE_ENROLL, BioAPI_PURPOSE_VERIFY, BioAPI_PURPOSE_IDENTIFY и т.д.). Кроме того, результаты биометрического анализа зависят от используемых приложений, то есть некоторые приложения могут требовать более высокого качества образцов, в то время как другие приложения устанавливают более низкие требования.

 

7.49.3 Результаты измерения качества возвращаются как целые значения в диапазоне 0-100, за исключением следующих случаев:

 

Значение "минус 1": BioAPI_QUALITY не был установлен ПБУ (для объяснения следует обратиться к документации разработчика ПБУ).

 

Значение "минус 2": BioAPI_QUALITY не поддерживается ПБУ.

 

7.49.4 Обратную связь BioAPI_QUALITY и биометрического приложения используют с целью:

 

с)* Основная цель - ПБУ должен сообщить приложению, насколько подходит биометрическая выборка для назначения (BioAPI_PURPOSE), указанного приложением (как предполагается разработчиком ПБУ на основе использования сценария, предположенного разработчиком этого ПБУ).

________________

* В оригинале ИСО/МЭК 19784-1 допущена ошибка. Нумерация перечислений начинается с пункта с).

 

d) Вторичная цель - предоставить приложению относительные результаты (например, текущий образец лучше или хуже предыдущего образца).

 

7.49.5 Значения показателя качества в диапазоне 0-100 имеют следующую общую интерпретацию:

 

 

 

0-25

НЕДОПУСТИМОЕ - ББД не может использоваться для назначения, указанного приложением (BioAPI_PURPOSE). ББД должен быть заменен с использованием одного или нескольких новых биометрических образцов;

26-50

НЕУДОВЛЕТВОРИТЕЛЬНОЕ - ББД обеспечит плохое выполнение задачи, указанной приложением (BioAPI_PURPOSE), и в большинстве случаев поставит под угрозу задачу приложения. ББД должен быть заменен с использованием одного или нескольких новых биометрических образцов;

51-75

УДОВЛЕТВОРИТЕЛЬНОЕ - ББД обеспечит хорошее выполнение задачи в большинстве прикладных программ, основанных на назначении, указанном приложением (BioAPI_PURPOSE). Приложение должно пытаться получить более качественные данные, если разработчик приложения предусматривает более требовательное использование;

76-100

ПРЕВОСХОДНОЕ - ББД обеспечит хорошее выполнение задачи, указанной приложением (BioAPI_BIR_PURPOSE).

 

Примечание - BioAPI_Quality соответствует "BDB_Quality" (качество ББД) в ЕСФОБД по ИСО/МЭК 19785-1.

 

 

      7.50 Тип BioAPI_RETURN

7.50.1 Данный тип содержит данные, возвращаемые всеми функциями БиоАПИ. Допустимые значения включают в себя:

 

- BioAPI_OK;

 

- все ошибочные значения, определенные в настоящем стандарте;

- особые значения ошибок ПБУ, определенные и возвращенные ПБУ;

 

- все значения ошибок, определенные для компонентов более низких уровней;

 

- зависящие от модулей БиоАПИ значения ошибок, определенные и возвращенные ПБУ.

 

 

 

 

typedef uint32_t BioAPI_RETURN;

 

 

#define BioAPI_OK

(0)

 

7.50.2 Определения

 

BioAPI_OK - указывает, что операция была выполнена успешно.

 

Любое другое значение - указывает, что операция не была выполнена успешно и идентифицирует обнаруженную ошибку, которая привела к аварийному завершению (перечень стандартизированных кодов ошибок указан разделе 11).

 

 

      7.51 Тип BioAPI_STRING

7.51.1 Данный тип используется структурами данных БиоАПИ для представления символьной строки в буфере фиксированной длины. Символьная строка должна завершаться нулевым символом.

 

typedef uint8_t BioAPI_STRING [269];

 

7.51.2 Данная строка должна состоять из символов, описанных в ИСО/МЭК 10646, кодировки UTF-8 по ИСО/МЭК 10646, приложение D.

 

 

      7.52 Тип BioAPI_TIME

Данный тип определяет время создания ЗБИ.

 

 

 

 

typedef struct bioapi_time {

 

uint8_t Hour; /* диапазон допустимых значений: 00-23, 99 */

 

uint8_t Minute; /* диапазон допустимых значений: 00-59, 99 */

 

uint8_t Second; /* диапазон допустимых значений: 00-59, 99*/

} BioAPI_TIME;

 

#define BioAPI_NO_HOUR_AVAILABLE (99)

 

#define BioAPI_NO_MINUTE_AVAILABLE (99)

 

#define BioAPI_NO_SECOND_AVAILABLE (99)

 

Условие NO_VALUE_AVAILABLE (данные недоступны) должно быть указано установкой всех полей на "99" (десятичные). При записи данных года, месяца, дня в заголовке ЗБИ и недоступной информации о времени должны быть использованы значения BioAPI_NO_HOUR_AVAILABLE, BioAPI_NO_MINUTE_AVAILABLE и BioAPI_NO_SECOND_AVAILABLE.

 

Примечание - Формат времени соответствует установленному в ISO 8601 [2].

 

 

      7.53 Тип BioAPI_UNIT_ID

Данный тип представляет собой ИД модуля БиоАПИ - 32-разрядное целое число, присвоенное модулю БиоАПИ от ПБУ, который управляет (непосредственно или косвенно) модулем БиоАПИ.

 

 

 

 

typedef uint32_t BioAPI_UNIT_ID;

 

 

#define BioAPI_DONT_CARE

(0x00000000)

 

#define BioAPI_DONT_INCLUDE

(0xFFFFFFFF)

 

 

      

     

 

      7.54 Тип BioAPI_UNIT_LIST_ELEMENT

7.54.1 Данный тип указывает модуль БиоАПИ по категории ИД. Список данных элементов используется для установления присоединенной сессии.

 

 

 

typedef struct bioapi_unit_list_element {

 

BioAPI_CATEGORY UnitCategory;

 

BioAPI_UNIT_ID Unitld;

} BioAPI_UNIT_LIST_ELEMENT;

 

7.54.2 Определения

 

UnitCategory - определяет категорию модуля БиоАПИ.

 

Unitld - ИД модуля БиоАПИ, используемый в данной присоединенной сессии, создаваемый ПБУ и являющийся уникальным.

 

 

      7.55 Тип BioAPI_UNIT_SCHEMA

7.55.1 Данный тип представляет собой схему модуля БиоАПИ и показывает специфические характеристики модуля БиоАПИ.

 

 

 

typedef struct bioapi_unit_schema {

 

BioAPI_UUID BSPUuid;

 

BioAPI_UUID UnitManagerUuid;

 

BioAPI_UNIT_ID Unitld;

 

BioAPI_CATEGORY UnitCategory;

 

BioAPI_UUID UnitProperties;

 

BioAPI_STRING Vendorlnformation;

 

uint32_t SupportedEvents;

 

BioAPI_UUID UnitPropertylD;

 

BioAPI_DATA UnitProperty;

 

BioAPI_STRING HardwareVersion;

 

BioAPI_STRING FirmwareVersion;

 

BioAPI_STRING SoftwareVersion;

 

BioAPI_STRINGHardwareSerialNumber;

 

BioAPI_BOOLAuthenticatedHardware;

 

uint32_t MaxBSPDbSize;

 

uint32 t Maxldentify;

} BioAPI_UNIT_SCHEMA;

 

Примечание - Схема модуля БиоАПИ используется как параметр функции BioAPI_QueryUnits и BioAPI_EventHandler, но не хранится в реестре компонентов.

 

7.55.2 Определения

 

BspUuid - УУИД ПБУ, поддерживающего этот модуль БиоАПИ.

 

UnitManagerUuid - УУИД программного компонента (либо ПБУ, либо ПБФ), непосредственно управляющего модулем БиоАПИ.

 

Unitld - ИД модуля БиоАПИ в данной присоединенной сессии, создаваемый ПБУ и являющийся уникальным.

 

UnitCategory - определяет категорию модуля БиоАПИ.

 

UnitProperties - УУИД, указывающий набор свойств модуля БиоАПИ. Указанный набор может быть определен изготовителем или соответствовать конкретному стандарту.

Vendorlnformation - содержит собственную информацию изготовителя.

 

SupportedEvents - маска, указывающая, какие типы событий поддерживаются аппаратными средствами.

 

UnitPropertylD - УУИД формата следующей структуры свойств модуля.

 

UnitProperty - адрес и длина буфера памяти, содержащего свойства модуля, описывающие модуль БиоАПИ. Формат и содержание свойств модуля могут быть либо описаны изготовителем, либо указаны в связанном стандарте.

 

HardwareVersion - строка, оканчивающаяся пустым символом, содержащая версию аппаратного обеспечения; может быть пустой, если параметр недоступен.

 

FirmwareVersion - строка, оканчивающаяся пустым символом, содержащая версию встроенного программного обеспечения; может быть пустой, если параметр недоступен.

 

SoftwareVersion - строка с нулевым символом на конце, содержащая версию программного обеспечения; может быть пустой, если параметр недоступен.

 

HardwareSerialNumber - строка с нулевым символом на конце, содержащая уникальный серийный номер, определяющий изготовителя компонентов аппаратного обеспечения; может быть пустой, если параметр недоступен.

 

AuthenticatedHardware - Булево значение, указывающее, был ли аутентифицирован компонент аппаратного обеспечения.

 

MaxBSPDbSize - максимальный размер поддерживаемой модулем БиоАПИ базы данных; если равен нулю - база данных не существует.

 

Maxldentify - максимальная совокупность идентификации, поддерживаемая модулем БиоАПИ; безразмерная - "FFFFFFFF".

 

 

      7.56 Тип BioAPI_UUID

Данный тип представляет собой универсальный уникальный идентификатор, используемый для идентификации и обращения к компонентам (ПБУ, ПБФ, модулям и инфраструктуре БиоАПИ), идентификации базы данных ЗБИ, а также и в качестве индекса базы данных ЗБИ, управляемой ПБУ.

 

typedef uint8_t BioAPI_UUID[16];

 

Примечание 1 - УУИД определены в ИСО/МЭК 9834-8.

 

Примечание 2 - УУИД БиоАПИ заголовка ЗБИ соответствует параметру "CBEFF_BDB_index" по ИСО/МЭК 19785-1.

 

 

 

 

     7.57 Тип BioAPI_VERSION      

Данный тип используется для представления версии БиоАПИ или определения ИПФ (Интерфейс Поставщика Функции), для которой реализованы компоненты или данные. Данный тип используется в функции BioAPI_Init, в заголовке ЗБИ и в схемах реестра компонентов.

 

Следующие два значения определены в настоящем стандарте:

 

(1) 32 десятеричное (20 шестнадцатеричное), соответствующее значению номера редакции 2 и значению номера поправки 0 и представляющее БиоАПИ 2.0; и

 

(2) 33 десятеричное (21 шестнадцатеричное), соответствующее значению номера редакции 2 и значению номера поправки 1 и представляющее БиоАПИ 2.1.

 

typedef uint8_tBioAPI_VERSION;

 

Примечание 1 - Данный тип не используется для версий продукта, которые обычно представлены строками.

 

Примечание 2 - Версия БиоАПИ, используемая в рамках заголовка ЗБИ, соответствует "CBEFF_patron_header_version" в ИСО/МЭК 19785-1.

 

Версия БиоАПИ является соединением значения номера редакции и значения номера поправки так, что первое шестнадцатеричное число представляет номер редакции, а второе шестнадцатеричное число - номер поправки:

 

BioAPI_VERSION  0xnm,

где n - номер редакции,

m - номер поправки.     

 

(Измененная редакция, Изм. N 1).    

           

         

 

      7.58 Тип BioAPI_BIR_BIOMETRIC_TYPE (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Маска, которая описывает набор биометрических типов (факторов), содержащихся в ЗБИ БиоАПИ или поддерживаемых ПБУ.

 

 

 

 

typedef uint32_t BioAPI_BIR_BIOMETRIC_TYPE;

 

#define BioAPI_NO_BIOTYPE_AVAILABLE

(0x00000000)

 

#define BioAPI_TYPE_MULTIPLE_BIOMETRIC_TYPES

(0x00000001)

 

#define BioAPI_TYPE_FACE

(0x00000002)

 

#define BioAPI_TYPE_VOICE

(0x00000004)

 

#define BioAPI_TYPE_FINGER

(0x00000008)

 

#define BioAPI_TYPE_IRIS

(0x00000010)

 

#define BioAPI_TYPE_RETINA

(0x00000020)

 

#define BioAPI_TYPE_HAND_GEOMETRY

(0x00000040)

 

#define BioAPI_TYPE_SIGNATURE_SIGN

(0x00000080)

 

#define BioAPI_TYPE_KEYSTROKE

(0x00000100)

 

#define BioAPI_TYPE_LIP_MOVEMENT

(0x00000200)

 

#define BioAPI_TYPE_GAIT

(0x00001000)

 

#define BioAPI_TYPE_VEIN

(0x00002000)

 

#define BioAPI_TYPE_DNA

(0x00004000)

 

#define BioAPI_TYPE_EAR

(0x00008000)

 

#define BioAPI_TYPE_FOOT

(0x00010000)

 

#define BioAPI_TYPE_SCENT

(0x00020000)

 

#define BioAPI_TYPE_OTHER

(0x40000000)

 

#define BioAPI_TYPE_PASSWORD

(0x80000000)

 

Примечание 1 - BioAPI_TYPE_MULTIPLE_BIOMETRIC_TYPE используется для обозначения того, что биометрические образцы, содержащиеся в ББД (ЗБИ), включают в себя образцы, полученные от биометрических сканеров разных типов (например, данные отпечатков пальцев и изображения лица). Расположение индивидуальных образцов в ББД определяет владелец формата и идентифицируется значением типа формата.

 

Примечание 2 - Значение NO VALUE AVAILABLE указывается установкой нулевого значения. Данное значение должно использоваться в том случае, если для ЗБИ, которые первоначально не были созданы ПБУ БиоАПИ, а были преобразованы в ЗБИ БиоАПИ, информация о биометрическом типе недоступна в записи первоначального источника. Преобразованные ЗБИ, чьи биометрические типы не соответствуют ни одному из определенных типов, должны использовать значение OTHER.

 

Примечание 3 - Биометрический тип ЗБИ БиоАПИ соответствует "CBEFF_BDB_biometric_type" по ИСО/МЭК 19785-1.

 

Примечание 4 - Несмотря на то, что password не является биометрической характеристикой, BioAPI_TYPE_PASSWORD включен как действительный BioAPI_BIR_BIOMETRIC_TYPE для поддержки использования password: а) для разработки и тестирования, b) как дополнительный фактор аутентификации в рамках приложения БиоАПИ.

 

Примечание 5 - Наименования нескольких биометрических типов в версии БиоАПИ 2.1 отличается от имен в версии БиоАПИ 2.0, но без изменений в семантике. Также в версию БиоАПИ 2.1 включено несколько новых биометрических типов. Наконец, "температурные" типы присутствуют в версии БиоАПИ 2.0, но отсутствуют в версии БиоАПИ 2.1. Данные различия внесены для соответствия с ИСО/МЭК 19785-1.

 

Примечание 6 - Наименования следующих значений не совпадают в версии БиоАПИ 2.0 и БиоАПИ 2.1, но их семантика не изменена. Наименования в версии БиоАПИ 2.1 соответствуют приведенным в ИСО/МЭК 19785-1 (ЕСФОБД).

           

 

 

 

Наименование в версии БиоАПИ 2.0

Наименование в версии БиоАПИ 2.1

Кодировка

MULTIPLE

MULTIPLE_BIOMETRIC_TYPES

0x00000001

FACIAL_FEATURES (ЧЕРТЫ ЛИЦА)

FACE (ЛИЦО)

0x00000002

FINGERPRINT (ОТПЕЧАТОК ПАЛЬЦА)

FINGER (ПАЛЕЦ)

0x00000008

SIGNATURE_DYNAMICS (ДИНАМИКА ПОДПИСИ)

SIGNATURE_SIGN (ЗНАК ПОДПИСИ)

0x00000080

KEYSTROKE_DYNAMICS (ДИНАМИКА РАБОТЫ С КЛАВИАТУРЫ)

KEYSTROKE (РАБОТА С КЛАВИАТУРОЙ)

0x00000100

Примечание 7 - Следующие значения не присутствуют в версии БиоАПИ 2.0, но присутствуют в версии БиоАПИ 2.1 для совместимости с ИСО/МЭК 19785-1 (ЕСФОБД).

 

 

 

Добавленное значение

Кодировка

NO_BIOTYPE_AVAILABLE

0x00000000

VEIN (ВЕНА)

0x00002000

DNA (ДНК)

0x00004000

EAR (УХО)

0x00008000

FOOT (СТУПНЯ)

0x00010000

SCENT (ЗАПАХ)

0x00020000

 

 

      7.59 Тип BioAPI_BIR_SUBTYPE (БиоАПИ 2.1)     

7.59.1 Данный подраздел применяется только при использовании версии БиоАПИ 2.1.     

7.59.2 BioAPI_BIR_SUBTYPE идентифицирует подтип в рамках типа ББД (блок биометрических данных) (определенный в BioAPI_BIR_BIOMETRIC_TYPE). Его значения и содержание определены дескриптором типа ББД.

 

Примечание - В определении данного типа в версии БиоАПИ 2.1 могут быть установлены несколько битов. Данное определение соответствует ИСО/МЭК 19785-1.

 

 

 

 

typedef uint8_t BioAPI_BIR_SUBTYPE;

 

#define BioAPI_BIR_SUBTYPE_VEIN_ONLY_MASK

(0x80)

 

#define BioAPI_BIR_SUBTYPE_LEFT_MASK

(0x01)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_MASK

(0x02)

 

#define BioAPI_BIR_SUBTYPE_THUMB

(0x04)

 

#define BioAPI_BIR_SUBTYPE_POINTERFINGER

(0x08)

 

#define BioAPI_BIR_SUBTYPE_MIDDLEFINGER

(0x10)

 

#define BioAPI_BIR_SUBTYPE_RINGFINGER

(0x20)

 

#define BioAPI_BIR_SUBTYPE_LITTLEFINGER

(0x40)

 

#define BioAPI_BIR_SUBTYPE_VEIN_PALM

(0x04)

 

#define BioAPI_BIR_SUBTYPE_VEIN_BACKOFHAND

(0x08)

 

#define BioAPI_BIR_SUBTYPE_VEIN_WRIST

(0x10)

 

#define BioAPI_NO_SUBTYPE_AVAILABLE

(0x00)

 

7.59.3 Данная структура является битовой маской с битами, определенными в таблице, приведенной ниже. Бит 7 используется для указания интерпретации битов более низкого порядка. Позиция бита ноль (0) или один (1) всегда указывают право и лево соответственно. Если позиция бита 7 не установлена, то данные позиции битов могут применяться к любому биометрическому типу; однако позиции битов 2-6 характерны для биометрических типов "палец" и "вена". Если позиция бита 7 установлена, то остальные позиции битов используются только для биометрического типа "вена".

 

 

 

 

 

 

 

 

 

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

0 (любой)

Мизинец

Безымянный

Средний

Указатель-

ный

Большой

Правый

Левый

1 (только вена)

Зарезер-

вирован

Зарезер-

вирован

Запястье

Тыльная сторона ладони

Ладонь

Правый

Левый

 

           

Примечание - Биометрические данные рисунка вен могут быть извлечены из изображений пальцев (Бит 7 задан равным нулю), или от запястья, ладони, или тыльной стороны ладони правой или левой руки (Бит 7 задан равным 1).     

 

7.59.4 Может быть установлено ноль или больше битов. Абстрактное значение NO VALUE AVAILABLE указывается установкой всех битов на ноль.

 

Примечание - Абстрактное значение NO VALUE AVAILABLE может быть использовано ЗБИ, которые не были созданы ПБУ БиоАПИ, а были преобразованы из другого формата данных. Данное значение также может быть использовано, когда ни одно другое значение не применимо или информация недоступна.     

 

7.59.5 Позиции битов с BioAPI_BIR_SUBTYPE_THUMB по BioAPI_BIR_SUBTYPE_LITTLEFINGER могут быть использованы для идентификации экземпляра(ов) биометрического типа, относящихся к пальцам.

 

Примечание - Подтип ЗБИ БиоАПИ соответствует "CBEFF_BDB_biometric_subtype" (ЕСФОБД_ББД_биометрический_подтип) в ИСО/МЭК 19785-1.     

 

7.59.6 Если задана одна или более позиций бита с BioAPI_BIR_SUBTYPE_THUMB по BioAPI_BIR_SUBTYPE_LITTLEFINGER, то должна быть задана одна из двух позиций бита или обе позиции битов BioAPI_BIR_SUBTYPE_LEFT_MASK и BioAPI_BIR_SUBTYPE_RIGHT_MASK.

 

Если задан только бит в первой позиции, то значение подтипа обозначает один или более пальцев левой руки. Если задан только бит в последней позиции, то значение подтипа обозначает один или более пальцев правой руки. Если заданы биты в обеих позициях, то значение обозначает один или более пальцев обеих рук (один и тот же палец на обеих руках).

 

Примечание - Невозможно обозначить, к примеру, набор отпечатков пальцев, состоящий из указательного пальца левой руки и среднего пальца правой руки.     

 

7.59.7 Если значение с набором битов нескольких пальцев присутствует в заголовке ЗБИ (или использовано в качестве входного параметра функции БиоАПИ, осуществляющей захват), то не обязательно, чтобы все указанные экземпляры пальцев действительно присутствовали в ББД ЗБИ (или были действительно захвачены). Однако рекомендуется, чтобы все обозначенные экземпляры пальцев присутствовали в ББД, кроме случая отсутствия пальца или подобных исключительных ситуаций. Таким же образом, если в поле подтипа ЗБИ обозначено несколько пальцев, то допускается, чтобы ББД ЗБИ включал данные о дополнительном пальце, если у субъекта шесть пальцев на руке.     

7.59.8 Если ни одна позиция бита с BioAPI_BIR_SUBTYPE_THUMB по BioAPI_BIR_SUBTYPE_LITTLEFINGER не была задана, то позиции битов BioAPI_BIR_SUBTYPE_LEFT_MASK и BioAPI_BIR_SUBTYPE_RIGHT_MASK могут быть использованы для идентификации экземпляра биометрического типа, для которого существует один правый экземпляр и один левый экземпляр (например, радужная оболочка глаза), или идентификации биометрического типа, для которого существует лишь один экземпляр (например, лицо).

             

   7.59.9 Данные рисунка вен, полученные из изображения одного или более пальцев, идентифицируются установкой бита в позиции 7 в ноль, установкой битов в одной или двух позициях 0 и 1, и установкой битов в одной или более позициях 3-7. Данные рисунка вен, полученные из других источников (запястье, ладонь или тыльная сторона ладони), идентифицируются установкой бита в позиции 7 в единицу, установкой битов в одной или двух позициях 0 и 1 и установкой одного из битов в позициях 3-5 соответствующим образом.

Примечание 1 - ЗБИ, которые не были созданы ПБУ БиоАПИ, но были преобразованы из другого формата данных, и для которых информация о подтипе недоступна, могут использовать значение NO VALUE AVAILABLE.

 

Примечание 2 - Подтип ЗБИ БиоАПИ соответствует "CBEFF_BDB_biometric_subtype" (ЕСФОБД_ББД_биометрический_подтип) в ИСО/МЭК 19785-1.

 

Примечание 3 - Данная структура, в первую очередь, используется в рамках заголовка ЗБИ; однако она также используется как входной параметр для функций, захватывающих биометрические данные. Значение BioAPI_NO_SUBTYPE_AVAILABLE используется в заголовке ЗБИ, когда информация о подтипе недоступна. Значение BioAPI_NO_SUBTYPE_AVAILABLE также используется как параметр функции, когда приложение позволяет ЗБИ определять подтип, который должен быть захвачен.

           

7.59.10 Не рекомендуется использование позиции бита BioAPI_BIR_SUBTYPE_MULTIPLE, когда номер использующейся версии БиоАПИ 2.1.           

 

 

     

 

      7.60 Тип BioAPI_BSP_SCHEMA (БиоАПИ 2.1)     

7.60.1 Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

                

7.60.2 Данный тип включает в себя информацию о ПБУ, содержащуюся в реестре компонентов.

 

 

typedef struct bioapi_bsp_schema {

 

BioAPI_UUID BSPUuid;

 

BioAPI_STRING BSPDescription;

 

uint8_t *Path;

 

BioAPI_VERSION SpecVersion;

 

BioAPI_STRING ProductVersion;

 

BioAPI_STRING Vendor;

 

BioAPI_BIR_BIOMETRIC_DATA_FORMAT*BSPSupportedFormats;

 

uint32_t NumSupportedFormats;

 

BioAPI_BIR_BIOMETRIC_TYPE FactorsMask;

 

BioAPI_OPERATIONS_MASK Operations;

 

BioAPI_OPTIONS_MASK Options;

 

BioAPI_FMR PayloadPolicy;

 

uint32_t MaxPayloadSize;

 

int32_t DefaultVerifyTimeout;

 

int32_t DefaultldentifyTimeout;

 

int32_t DefaultCaptureTimeout;

 

int32_t DefaultEnrollTimeout;

 

int32_t DefaultCalibrateTimeout;

 

uint32_t MaxBSPDbSize;

 

uint32_t Maxldentify;

 

uint32_t MaxNumEnrollInstances;

 

uint8_t *HostingEndpointIRI;

 

BioAPI_UUID BSPAccessUUID;

} BioAPI_BSP_SCHEMA;

 

7.60.3 Определения

 

BSPUuid - УУИД ПБУ.

 

BSPDescription - строка с нулевым символом на конце, содержащая текстовое описание ПБУ.

 

Path - указатель на строку с нулевым символом на конце, содержащую путь к файлу, содержащему исполняемый код ПБУ, включая название файла. Путь к файлу может быть записан в виде адреса страницы URL. Символьная строка должна содержать символы, закодированные в формате UTF-8 в соответствии с ИСО/МЭК 10646 (приложение D).

 

Примечание - Если BioAPI_BSP_SCHEMA используется в вызове функции, компонент, получающий вызов, выделяет память для элемента схемы Path (путь к файлу), а вызывающий компонент освобождает память.

 

SpecVersion - номер редакции и номер поправки данной редакции спецификации БиоАПИ, для которой был разработан ПБУ.

 

ProductVersion - строка версии программного обеспечения ПБУ.

 

Vendor - строка с нулевым символом на конце, содержащая название изготовителя ПБУ.

 

BSPSupportedFormats - указатель на структуру BioAPI_BIR_BIOMETRIC_DATA_FORMAT, определяющую поддерживаемые форматы ББД.

 

NumSupportedFormats - число поддерживаемых форматов, содержащихся в BSPSupportedFormats.

 

FactorMask - маска, указывающая биометрические типы, поддерживаемые ПБУ.

 

Operations - маска, указывающая операции, поддерживаемые ПБУ.

 

Options - маска, указывающая опции, поддерживаемые ПБУ.

 

PayloadPolicy - пороговое значение (минимальное значение вероятности ложного совпадения), используемое для принятия решения о выдаче полезной информации после успешной верификации.

 

MaxPayloadSize - максимальный размер полезной информации (в байтах), которую может принять ПБУ.

 

DefaultVerifyTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции верификации BioAPI_Verify в случае, когда время ожидания не определено приложением.

 

DefaultldentifyTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции идентификации BioAPI_Identify и BioAPI_IdentifyMatch в случае, когда время ожидания не определено приложением.

 

DefaultCaptureTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции захвата BioAPI_Capture в случае, когда время ожидания не определено приложением.

 

DefaultEnrollTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции регистрации BioAPI_Enroll в случае, когда время ожидания не определено приложением.

 

DefaultCalibrateTimeout - заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для операций калибровки датчика в случае, когда время ожидания не определено приложением.

 

MaxBSPDbSize - максимальный размер управляемой ПБУ базы данных ЗБИ.

 

Примечание 1 - Применяется только в том случае, когда ПБУ способен непосредственно управлять отдельным модулем архива.

 

Примечание 2 - Нулевое значение означает, что информация о размере базы данных не должна быть предоставлена по следующим трем причинам:

 

a) базы данных не поддерживаются;

 

b) существует возможность управления несколькими модулями (непосредственно или с использованием интерфейса ПБФ), каждый из которых может иметь различную максимальную длину, и информация о данном модуле будет предоставлена как часть уведомления о подключении (часть схемы модуля); или

 

c) поддерживается один модуль архива, но в данном параметре информация не предоставлена - она будет доступна в уведомлении о подключении.

 

Maxldentify - максимальное число людей, поддерживаемых функцией идентификации. Значение FFFFFFFF указывает на отсутствие ограничения.

 

MaxNumEnrollInstances - максимальное число разных экземпляров, для которых ПБУ может создать контрольный шаблон в течение одной операции регистрации. Данная информация может быть полезной для приложения, использующего опцию ГИП, управляемого приложением.

 

HostingEndpointlRI - интернационализированный идентификатор ресурса (ИИР), идентифицирующий структуру, реестр компонентов которой содержит регистрацию ПБУ. Данный параметр должен быть проигнорирован инфраструктурами, соответствующими настоящему стандарту, и приложение должно установить его на пустой указатель. Это необходимо для поддержки взаимодействующих стандартов, которые могут определить порядок использования идентичных ПБУ, присутствующих на нескольких компьютерах, приложением, которое работает на том же или другом компьютере.

 

BSPAccessUUID - УУИД, уникальный в рамках области видимости приложения, с помощью которого приложение может сослаться на ПБУ вместо использования УУИД ПБУ. Данный параметр должен быть проигнорирован инфраструктурами, соответствующими настоящему стандарту, и приложение может ему задать любое значение УУИД. Это необходимо для поддержки взаимодействующих стандартов, которые могут определить порядок использования идентичных ПБУ, присутствующих на нескольких компьютерах, приложением, которое работает на том же или другом компьютере.

 

Примечание - "BSPAccess_UUID" и "HostingendpointlRI" являются частью определения типа BioAPI_BSP_SCHEMA, но не являются частью информации о схеме ПБУ, хранящейся в реестре компонентов (см. таблицу 3).     

 

7.60.4 Более подробное описание приведенных элементов и порядка записи информации ПБУ в реестр компонентов БиоАПИ приведено в 10.1.2 и 10.2.1.               

           

 

 

      7.61 Тип BioAPI_GUI_BITMAP (БиоАПИ 2.1)          

7.61.1 Данный подраздел применяется только при использовании версии БиоАПИ 2.1.     

7.61.2 Данная структура представляет собой графическое изображение для его отображения приложением.

 

 

 

typedef struct bioapi_gui_bitmap {

 

BioAPI_BlR_SUBTYPE_MASK SubtypeMask;

 

/* Подтип (или подтипы) образца, представленного на изображении */

 

uint32_t Width;

 

/* Ширина изображения в точках (число точек в горизонтальной линии) */

 

uint32_t Height;

 

/* Высота изображения в точках (число горизонтальных линий) */

BioAPI_DATA Bitmap;

 

 

 

 

} BioAPI_GUI_BITMAP;

 

7.61.3 Определения

 

Bitmap - множество 8-битовых полутоновых точек (где "00" - черный и "FF" - белый), в котором данные считываются слева направо и сверху вниз следующим образом (таблица 1-1).

 

Таблица 1-1 - Формат битовой карты графического интерфейса пользователя

 

 

 

Позиция байта

Значение

Описание

0

Строка 0, пиксель 0

Первый пиксель первой строки 

1

Строка 0, пиксель 1

Второй пиксель первой строки

Ширина - 1

Строка 0, пиксель (ширина - 1)

Последний пиксель первой строки

Ширина

Строка 1, пиксель 0

Первый пиксель второй строки

(Ширина* Высота) - 1

Строка (ширина - 1), пиксель (высота - 1)

Последняя строка, последний пиксель

 

Примечание - Данная структура используется вместе с опцией ГИП, управляемого приложением. Описание BioAPI_GUI_STATE_HANDLER и BioAPI_GUI_STREAMING_HANDLER приведено в 7.71.     

 

 

 

  

 

     7.62 Тип BioAPI_GUI_ENROLL_TYPE (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Тип BioAPI_GUI_ENROLL_TYPE является типом регистрации ПБУ и определяется таким образом:

 

 

 

typedef uint32_t BioAPI_GUI_ENROLL_TYPE;

 

#define BioAPI_GUI_ENROLL_TYPE TEST_VERIFY

(0x00000001)

 

#define BioAPI_GUI_ENROLL_TYPE MULTIPLE_CAPTURE

(0x00000002)

 

Тип регистрации ПБУ указывает схему подопераций, представленных ПБУ в течение операции регистрации.

 

Позиция бита BioAPI_GUI ENROLL_TYPE TEST_VERIFY указывает (если задана) на то, что ПБУ поддерживает тест-верификацию при регистрации. В течение операции регистрации приложение получает обратные вызовы уведомления о событии изменения состояния ГИП для двух подопераций захвата, обратные вызовы уведомления о событии изменения состояния ГИП для подоперации обработки, обратные вызовы уведомления о событии изменения состояния ГИП для подоперации верификации - сравнения между "обработанной" ЗБИ и соответствующим шаблоном.

 

Позиция бита BioAPI_GUI ENROLL_TYPE TEST_VERIFY указывает (если задана) на то, что ПБУ поддерживает несколько подопераций захвата при регистрации. В течение операции регистрации приложение получает обратные вызовы уведомления о событии изменения состояния ГИП для нескольких подопераций захвата, за которыми следуют обратные вызовы уведомления о событии изменения состояния ГИП для подоперации создания шаблона.

 

Две позиции бита не могут быть заданы одновременно.

 

Примечание - Данное ограничение введено из-за того, что приложению для поддержки сочетания Тестировать-Верифицировать и Многократный-Захват потребуется больше информации о временных рамках подопераций для выбора разметки экрана в процессе регистрации.          

 

      7.63 Тип BioAPI_GUI_BITMAP_ARRAY (БиоАПИ 2.1)

           

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Данный тип BioAPI_GUI_BITMAP_ARRAY определяется следующим образом:

 

 

 

 

typedef struct bioapi_gui_bitmap_array {

         uint32_t NumberOfMembers;

         BioAPI_GUI_BITMAP *Bitmaps;

         /* Указатель на массив BioAPI_GUI_BITMAPs */

 

} BioAPI_GUI_BITMAP_ARRAY;

 

                   

 

      7.64 Тип BioAPI_BIR_SUBTYPE_MASK (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Данный тип BioAPI_GUI_SUBTYPE_MASK определяется следующим образом:

 

 

 

 

typedef uint32_t BioAPI_BIR_SUBTYPE_MASK;

 

#define BioAPI_BIR_SUBTYPE_LEFT_BIT

(0x0001)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_BIT

(0x0002)

 

#define BioAPI_BIR_SUBTYPE_LEFT_THUMB_BIT

(0x0004)

 

#define BioAPI_BIR_SUBTYPE_LEFT_POINTERFINGER_BIT

(0x0008)

 

#defineBioAPI_BIR_SUBTYPE_LEFT_MIDDLEFINGER_BIT

(0x0010)

 

#define BioAPI_BIR_SUBTYPE_LEFT_RINGFINGER_BIT

(0x0020)

 

#define BioAPI_BIR_SUBTYPE_LEFT_LITTLEFINGER_BIT

(0x0040)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_THUMB_BIT

(0x0080)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_POINTERFINGER_BIT

(0x0100)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_MIDDLEFINGER_BIT

(0x0200)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_RINGFINGER_BIT

(0x0400)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_LITTLEFINGER_BIT

(0x0800)

 

#define BioAPI_BIR_SUBTYPE_LEFT_VEIN_PALM_BIT

(0x00001000)

 

#define BioAPI_BIR_SUBTYPE_LEFT_VEIN_BACKOFHAND_BIT

(0x00002000)

 

#define BioAPI_BIR_SUBTYPE_LEFT_VEIN_WRIST_BIT

(0x00004000)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_VEIN_PALM_BIT

(0x00008000)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_VEIN_BACKOFHAND_BIT

(0x00010000)

 

#define BioAPI_BIR_SUBTYPE_RIGHT_VEIN_WRIST_BIT

(0x00020000)

 

Примечание1 - Значения VEIN не присутствуют в версии БиоАПИ 2.0.

 

Позиции битов BioAPI_BIR_SUBTYPE_LEFT_BIT и BioAPI_BIR_SUBTYPE_RIGHT_BIT могут быть использованы для идентификации экземпляра биометрической модальности, для которой есть один "левый" экземпляр и один "правый" экземпляр.

 

Примечание 2 - Геометрия радужной оболочки глаза и руки является примером таких модальностей.

 

Другие позиции битов (с BioAPI_BIR_SUBTYPE_LEFT_THUMB_BIT по BioAPI_BIR_SUBTYPE_RIGHT_LITTLEFINGER_BIT) могут быть использованы для идентификации экземпляров биометрической модальности, касающейся пальцев.

 

Примечание 3 - Отпечаток пальца является примером такой модальности.

 

Значение ноль (позиция бита не задана) может быть использовано с биометрическими модальностями с единственным экземпляром.

 

Примечание 4 - Подпись является примером такой модальности.     

 

 

 

    

 

     7.65 Тип BioAPI_GUI_EVENT_SUBSCRIPTION (БиоАПИ 2.1)

Данный подраздел применяется только при использовании номера версии БиоАПИ 2.1.

 

Данный тип хранит информацию о существующей именованной подписке на события ГИП. Он идентифицирует приложение-подписчик и именованную подписку и указывает, какие типы событий ГИП находятся в области действий подписки. Данный тип предназначен для использования в функции BioAPI_QueryGUIEventSubscriptions.

 

Именованная подписка на событие ГИП создана вызовом BioAPI_SubscribeToGUIEvents, определяющим непустой УУИД подписки на событие ГИП. Инфраструктура вызывает обработчики события, определенные именованной подписке, для уведомления о событиях ГИП, генерируемых ПБУ, которые перенаправлены на данную именованную подписку (см. 8.3.7), и для уведомления о событиях ГИП, генерируемых приложением (см. 8.3.3, 8.3.4, 8.3.5), которые направлены на данную именованную подписку.

 

 

 

typedef struct_bioapi_gui_event_subscription {

 

const uint8_t *SubscriberEndpointIRI;

 

BioAPI_UUID GUIEventSubscriptionUuid;

 

BioAPI_BOOL GUISelectEventSubscribed;

 

BioAPI_BOOL GUIStateEventSubscribed;

 

BioAPI_BOOL GUIProgressEventSubscribed;

} BioAPI_GUI_EVENT_SUBSCRIPTION;

 

SubscriberEndpointlRI - ИИР - см. RFC 3987 - (первоначально предоставлен инфраструктурой), который идентифицирует приложение, создавшее именованную подписку на событие ГИП. Параметр должен быть установлен на пустой указатель, если приложение-подписчик то же, что и текущее приложение.

 

GUIEventSubscriptionUuid - УУИД (первоначально предоставлен приложением-подписчиком), который идентифицирует именованную подписку на событие ГИП.

 

GUISelectEventSubscribed - указывает на то, находятся ли события выбора ГИП в области действий подписки (адрес обратного вызова, установленный на непустой указатель, первоначально предоставлен приложением-подписчиком для обработчика события выбора ГИП).

 

GUIStateEventSubscribed - указывает на то, находятся ли события изменения состояния ГИП в области действий подписки (адрес обратного вызова, установленный на непустой указатель, первоначально предоставлен приложением-подписчиком для обработчика события изменения состояния ГИП).

 

GUIProgressEventSubscribed - определяет то, находятся ли события выполнения ГИП в области действий подписки (адрес обратного вызова, установленный на непустой указатель, первоначально предоставлен приложением-подписчиком для обработчика события выполнения ГИП).

 

 

 

      7.66 Тип BioAPI_GUI_MOMENT (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

Перечень моментов, в которых:

 

a) событие выбора ГИП может быть сгенерировано в отношении цикла подоперации, или

b) событие изменения состояния или выполнения может быть сгенерировано в отношении подоперации.

 

 

 

typedef uint32_t BioAPI_GUI_MOMENT;

 

#define BioAPI_GUI_MOMENT_BEFORE_START (1)

 

#define BioAPI_GUI_MOMENT_DURING (2)

 

#define BioAPI_GUI_MOMENT_AFTER_END (3)

 

Значения BioAPI_GUI_MOMENT_BEFORE_START и BioAPI_GUI_MOMENT_AFTER_END могут появиться во всех типах уведомлений о событиях ГИП, в то время как значение BioAPI_GUI_MOMENT_DURING может появиться только в уведомлениях о событии выполнения ГИП.

 

Если значение BioAPI_GUI_MOMENT_BEFORE_START встречается в уведомлении о событии выбора ГИП, то это означает, что ПБУ готов запустить новый цикл подоперации. Цикл подоперации заключается в единственном выполнении последовательности подопераций, составляющих операцию (см. 7.68). Число циклов подопераций (успешных или нет), выполнение которых может быть затребовано приложением в рамках операции, не ограничено. Однако все полученные данные в течение каждого цикла должны быть отвергнуты с запуском последующего цикла, поэтому результатом операции (включая возвращаемое значение и полученные данные) всегда является результат ее последнего (или единственного) цикла подоперации (кроме случая отмены).

 

Если значение BioAPI_GUI_MOMENT_AFTER_END встречается в обратном вызове уведомления о событии выбора ГИП, то это означает, что текущий цикл подоперации завершен. Данное значение не указывает на то, успешно ли выполнение цикла подопераций или нет, так как информация предоставляется отдельным параметром уведомления о событии выбора ГИП, содержащего значение результата цикла подопераций.

 

Если значение BioAPI_GUI_MOMENT_BEFORE_START встречается в обратном вызове уведомления о событии изменения состояния ГИП, то это означает, что ПБУ готов запустить новую подоперацию в рамках текущего цикла подопераций.

 

Если значение BioAPI_GUI_MOMENT_AFTER_END встречается в обратном вызове уведомления о событии изменения состояния ГИП, то это означает, что текущая подоперация, выполняемая ПБУ, завершена.

 

Данное значение не указывает на то, успешно ли выполнение подоперации или нет, так как информация предоставляется отдельным параметром уведомления о событии изменения состояния ГИП, содержащего значение результата цикла подопераций.

 

Если значение BioAPI_GUI_MOMENT_BEFORE_START встречается в обратном вызове уведомления о событии выполнения ГИП, то это означает, что ПБУ готов запустить новую подоперацию в рамках текущего цикла подопераций. Событие выполнения ГИП с данным моментом может быть излишним, если также произведено событие изменения состояния ГИП, и может быть исключено. Однако подобное событие выполнения ГИП применимо в тех операциях (таких как идентификация), которые не производят событие изменения состояния ГИП.

 

Если значение BioAPI_GUI_MOMENT_DURING встречается в обратном вызове уведомления о событии выполнения ГИП, то это означает, что подоперация находится в процессе выполнения.

 

Если значение BioAPI_GUI_MOMENT_AFTER_END встречается в обратном вызове уведомления о событии выполнения ГИП, то это означает, что текущая подоперация, выполняемая ПБУ, завершена. Событие выполнения ГИП с данным моментом может быть излишним, если также произведено событие изменения состояния ГИП, и может быть исключено. Однако подобное событие выполнения ГИП применимо в тех операциях (таких как идентификация), которые не производят событие изменения состояния ГИП.

 

Примечание - Данный тип используется с опцией ГИП, управляемой приложением (см. 7.71).     

 

 

 

   

 

      7.67 Тип BioAPI_GUI_PROGRESS (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Значение в диапазоне от 0 до 100 означает процент выполнения (завершения) подоперации, предназначенный для отображения пользователю или оператору.

 

typedef uint8_t BioAPI_GUI_PROGRESS;

 

Примечание - Используется с опцией ГИП, управляемого приложением. См. описание BioAPI_GUI_PROGRESS_EVENT в 7.71.     

 

      7.68 Тип BioAPI_GUI_OPERATION (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Перечень всех функций (операций) интерфейса ПБУ, в процессе которых ПБУ может сгенерировать событие ГИП.

 

 

 

typedef uint8_t BioAPI_GUI_OPERATION;

 

#define BioAPI_GUI_OPERATION_CAPTURE (1)

 

#define BioAPI_GUI_OPERATION_PROCESS (2)

 

#define BioAPI_GUI_OPERATION_CREATETEMPLATE (3)

 

#define BioAPI_GUI_OPERATION_VERIFYMATCH (4)

 

#define BioAPI_GUI_OPERATlON_IDENTIFYMATCH (5)

 

#define BioAPI_GUI_OPERATION_VERIFY (6)

 

#define BioAPI_GUI_OPERATION_IDENTIFY (7)

 

#define BioAPI_GUI_OPERATION_ENROLL (8)

 

Значения данного типа встречаются в уведомлениях о событии ГИП и идентифицируют тип функции интерфейса ПБУ, который выполнялся, когда ПБУ сгенерировал событие ГИП, и на который ссылается событие ГИП.

 

В таблице 1-2 определяется соответствие между функциями и операциями интерфейса ПБУ.

 

Таблица 1-2 - Функции и операции интерфейса ПБУ

 

 

 

Функции интерфейса ПБУ

Значение BioAPI_GUI_OPERATION

Общее наименование операции

BioSPI_Capture

BioAPI_GUI_OPERATION_CAPTURE

Операция захвата

BioSPI_Process

BioAPI_GUI_OPERATION_PROCESS

Операция обработки

BioSPI_CreateTemplate

BioAPI_GUI_OPERATION_CREATETEMPLATE

Операция создания шаблона

BioSPI_VerifyMatch

BioAPI_GUI_OPERATION_VERIFYMATCH

Операция верификации и сопоставления

BioSPI_IdentifyMatch

BioAPI_GUI_OPERATION_IDENTIFYMATCH

Операция идентификации и сопоставления

BioSPI_Verify

BioAPI_GUI_OPERATION_VERIFY

Операция верификации

BioSPI_Identify

BioAPI_GUI_OPERATION_IDENTIFY

Операция идентификации

BioSPI_Enroll

BioAPI_GUI_OPERATION_ENROLL

Операция регистрации

 

В таблице 1-3 определяется, какое из событий ГИП может быть сгенерировано ПБУ в процессе выполнения каждого типа операции.

 

Таблица 1-3 - События ГИП, генерируемые в каждой операции

 

 

 

 

Операция

События выбора ГИП

События изменения состояния ГИП

События обработки ГИП

Операция захвата

X

X

X

Операция обработки

 

 

X

Операция создания шаблона

 

 

X

Операция верификации и сопоставления

 

 

X

Операция идентификации и сопоставления

 

 

X

Операция верификации

X

X

X

Операция идентификации

X

X

X

Операция регистрации

X

X

X

 

            

 

 

      7.69 Тип BioAPI_GUI_RESPONSE (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1

 

Перечень возможных действий, которые должны быть выполнены ПБУ после того как обратный вызов уведомления о событии ГИП, произведенный ПБУ, возвращает управление ПБУ. Приложение задает выходящему параметру обратного вызова (Response) значение данного типа перед возвратом от уведомления обратного вызова.

 

 

 

typedef uint8_t BioAPI_GUI_RESPONSE;

 

#define BioAPI_GUI_RESPONSE_DEFAULT (0)

 

#define BioAPI_GUI_RESPONSE_OP_COMPLETE (1)

 

#define BioAPI_GUI_RESPONSE_OP_CANCEL (2)

 

#define BioAPI_GUI_RESPONSE_CYCLE_START (3)

 

#define BioAPI_GUI_RESPONSE_CYCLE_RESTART (4)

 

#define BioAPI_GUI_RESPONSE_SUBOP_START (5)

 

#define BioAPI_GUI_RESPONSE_SUBOP_NEXT (6)

 

#define BioAPI_GUI_RESPONSE_PROGRESS_CONTINUE (7)

 

#define BioAPI_GUI_RESPONSE_PROGRESS_ABORT (8)

 

#define BioAPI_GUI_RESPONSE_RECAPTURE (9)

 

Значение BioAPI_GUI_RESPONSE_OP_COMPLETE может быть возвращено только в качестве ответа обратному вызову уведомления о событии выбора ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END. Оно означает то, что ПБУ должен считать операцию завершенной и должен инициировать вызов первоначальной функции для возвращения кода результата текущего цикла подопераций (который может быть либо BioAPI_ОK, либо кодом ошибки). После данного ответа приложения в отношении той же операции обратные вызовы уведомления о событии ГИП не ожидаются.

Значение BioAPI_GUI_RESPONSE_OP_CANCEL может быть возвращено в качестве ответа на любой обратный вызов уведомления о событии ГИП. Оно означает то, что ПБУ должен отменить всю операцию и инициировать вызов первоначальной функции для возвращения кода ошибки. После данного ответа приложения в отношении той же операции обратные вызовы уведомления о событии ГИП не ожидаются.

 

Значение BioAPI_GUI_RESPONSE_CYCLE_START может быть возвращено только в качестве ответа обратному вызову уведомления о событии выбора ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START. Оно означает то, что ПБУ должен запустить цикл подопераций.

 

Значение BioAPI_GUI_RESPONSE_CYCLE_RESTART может быть возвращено только в качестве ответа обратному вызову уведомления о событии выбора ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END или в качестве ответа обратному вызову уведомления о событии изменения состояния или выполнения с любым значением момента. Оно означает то, что ПБУ должен отвергнуть все данные, полученные в течение текущего цикла подопераций, и должен запустить новый цикл подопераций. После данного ответа приложения от ПБУ ожидается обратный вызов уведомления о событии выбора ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START.

 

Значение BioAPI_GUI_RESPONSE_SUBOP_START может быть возвращено только в качестве ответа обратному вызову уведомления о событии изменения состояния ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START. Оно означает то, что ПБУ должен запустить подоперацию.

 

Значение BioAPI_GUI_RESPONSE_SUBOP_NEXT может быть возвращено только в качестве ответа обратному вызову уведомления о событии изменения состояния ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END. Оно означает то, что ПБУ должен либо выполнить следующую подоперацию в текущем цикле подопераций (если существуют еще подоперации, которые необходимо выполнить), либо выйти из цикла подопераций (если все подоперации цикла выполнены). После данного ответа приложения от ПБУ ожидается обратный вызов уведомления о событии изменения состояния ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START или обратный вызов уведомления о событии выбора со значением момента BioAPI_GUI_MOMENT_AFTER_END (соответственно).

 

Значение BioAPI_GUI_RESPONSE_PROGRESS_CONTINUE может быть возвращено только в качестве ответа на обратный вызов уведомления о событии выполнения ГИП. Оно означает то, что ПБУ должен продолжить выполнение подоперации.

 

Значение BioAPI_GUI_RESPONSE_PROGRESS_ABORT может быть возвращено только в качестве ответа на обратный вызов уведомления о событии выполнения ГИП. Оно означает то, что ПБУ должен отменить подоперацию и выдать код ошибки. После данного ответа приложения от ПБУ ожидается обратный вызов уведомления о событии изменения ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END.

 

Значение BioAPI_GUI_RESPONSE_RECAPTURE может быть возвращено только в качестве ответа на обратный вызов уведомления о событии выполнения ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END. Оно означает то, что ПБУ должен отвергнуть один из полученных в текущем цикле подопераций образцов (возможно, отвергая и любой контрольный шаблон и любой обработанный образец, созданные из отвергаемого образца) и выполнить другую подоперацию захвата для создания нового образца. После данного ответа приложения от ПБУ ожидается обратный вызов уведомления о событии изменения состояния ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START (для подоперации захвата с целью регистрации). По завершении подоперации захвата ПБУ должен выполнить любую другую подоперацию, необходимую для завершения текущего цикла подопераций.

 

Значение BioAPI_GUI_RESPONSE_DEFAULT должно пониматься как одно из следующих значений, которое относится к особой ситуации, при которой оно возвращено: BioAPI_GUI_RESPONSE_CYCLE_START, BioAPI_GUI_RESPONSE_SUBOP_START, BioAPI_GUI_RESPONSE_PROCESS_CONTINUE, BioAPI_GUI_RESPONSE_SUBOP_NEXT, или BioAPI_GUI_RESPONSE_OP_COMPLETE.

             

Если приложение возвращает не то ответное значение, которое допустимо в каждой отдельной ситуации, то ПБУ должен отменить операцию и вызвать первоначальную функцию для возвращения кода ошибки. В отношении той же операции обратные вызовы уведомления о событии ГИП не ожидаются.

 

В таблице 1-4 сведена информация о совместимости между типами событий ГИП, значениями момента и ответами.

 

 

 

Таблица 1-4 - Ответы ГИП и события ГИП

 

 

 

 

 

 

 

 

Ответ приложения

Собы-

тие выбора ГИП (перед запус-

ком)

Собы-

тие изме-

нения состоя-

ния ГИП (перед запус-

ком)

Собы-

тие выпол-

нения ГИП (перед запус-

ком)

Собы-

тие выпол-

нения ГИП (в про-

цессе)

Собы-

тие выпол-

нения ГИП (после завер-

шения)

Собы-

тие изме-

нения состоя-

ния ГИП (после завер-

шения)

Собы-

тие выбо-

ра ГИП (после завер-

шения)

BioAPI_GUI_RESPONSE_DEFAULT

X

X

X

X

X

X

X

BioAPI_GUI_RESPONSE_CYCLE_START

X

 

 

 

 

 

 

BioAPI_GUI_RESPONSE_SUBOP_START

 

X

 

 

 

 

 

BioAPI_GUI_RESPONSE_PROGRESS_CONTINUE

 

 

X

X

X

 

 

BioAPI_GUI_RESPONSE_SUBOP_NEXT

 

 

 

 

 

X

 

BioAPI_GUI_RESPONSE_OP_COMPLETE

 

 

 

 

 

 

X

BioAPI_GUI_RESPONSE_PROGRESS_ABORT

 

 

X

X

X

 

 

BioAPI_GUI_RESPONSE_RECAPTURE

 

 

 

 

 

X

 

BioAPI_GUI_RESPONSE_CYCLE_RESTART

 

X

X

X

X

X

X

BioAPI_GUI_RESPONSE_OP_CANCEL

X

X

X

X

X

X

X

 

           

 

      7.70 Тип BioAPI_GUI_SUBOPERATION (БиоАПИ 2.1)

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.

 

Перечень возможных типов подопераций, выполняемых ПБУ в процессе операции, о которых может быть сообщено приложению в уведомлении о событии ГИП.

 

 

 

typedef uint8_t BioAPI_GUI_SUBOPERATION;

 

#define BioAPI_GUI_SUBOPERATION_CAPTURE (1)

 

#define BioAPI_GUI_SUBOPERATION_PROCESS (2)

 

#define BioAPI_GUI_SUBOPERATION_CREATETEMPLATE (3)

 

#define BioAPI_GUI_SUBOPERATION_VERIFYMATCH (4)

 

#define BioAPI_GUI_SUBOPERATION_IDENTIFYMATCH (5)

 

Значения данного типа встречаются в уведомлениях о событии ГИП и идентифицируют тип подоперации текущей операции, для которой сгенерировано событие ГИП.

 

В таблице 1-5 показаны типы подопераций (и их число), которые выполняются ПБУ в процессе каждого типа операции (по порядку). Для операций BioAPI_GUI_OPERATION_CAPTURE, BioAPI_GUI_OPERATION_VERIFY, BioAPI_GUI_OPERATION_IDENTIFY и BioAPI_GUI_OPERATION_ENROLL число подопераций соответствует полному циклу подопераций (см. 7.66), и в нем не учитываются возможные повторные захваты, которые совершаются в процессе цикла (см. 7.69).

 

Таблица 1-5 - Подоперации, выполняемые в каждой операции

 

 

Операции

Подоперации

BioAPl_GUI_OPERATION_CAPTURE с целью верификации или идентификации

BioAPI_GUI_SUBOPERATION_CAPTURE (одна)

 

BioAPI_GUI_SUBOPERATION_PROCESS (ни одной или одна)

BioAPI_GUI_OPERATION_CAPTURE с целью регистрации (если тип регистрации тестировать-верифицировать)

BioAPI_GUI_SUBOPERATION_CAPTURE (две)

 

BioAPI_GUI_SUBOPERATION_CREATETEMPLATE (одна)

 

BioAPI_GUI_SUBOPERATION_PROCESS (одна)

 

BioAPI_GUI_SUBOPERATION_VERIFYMATCH (одна)

BioAPI_GUI_OPERATION_CAPTURE с целью регистрации (если тип регистрации многократный-захват)

BioAPI_GUI_SUBOPERATION_CAPTURE (несколько)

 

BioAPI_GUI_SUBOPERATION_CREATETEMPLATE (одна)

BioAPI_GUI_OPERATlON_PROCESS

BioAPI_GUI_SUBOPERATION_PROCESS (одна)

BioAPI_GUI_OPERATION_CREATETEMPLATE  

BioAPI_GUI_SUBOPERATION_CREATETEMPLATE (одна)

BioAPI_GUI_OPERATION_VERIFYMATCH  

BioAPI_GUI_SUBOPERATION_VERIFYMATCH (одна)

BioAPI_GUI_OPERATION_IDENTIFYMATCH  

BioAPI_GUI_SUBOPERATION_lDENTIFYMATCH (одна)

BioAPI_GUI_OPERATION_VERIFY  

BioAPI_GUI_SUBOPERATION_CAPTURE (одна)

 

BioAPI_GUI_SUBOPERATION_PROCESS (одна)

 

BioAPI_GUI_SUBOPERATION_VERIFYMATCH (одна)

BioAPI_GUI_OPERATION_IDENTIFY  

BioAPI_GUI_SUBOPERATION_CAPTURE (одна)

 

BioAPI_GUI_SUBOPERATION_PROCESS (одна)

 

BioAPI_GUI_SUBOPERATION_IDENTIFYMATCH (одна)

BioAPI_GUI_OPERATION_ENROLL (если тип регистрации тестировать-верифицировать)

BioAPI_GUI_SUBOPERATION_CAPTURE (две)

 

BioAPI_GUI_SUBOPERATION_CREATETEMPLATE (одна)

 

BioAPI_GUI_SUBOPERATION_PROCESS (одна)

 

BioAPI_GUI_SUBOPERATION_VERIFYMATCH (одна)

BioAPI_GUI_OPERATION_ENROLL (если тип регистрации многократный-захват)

BioAPI_GUI_SUBOPERATION_CAPTURE (несколько)

BioAPI_GUI_SUBOPERATION_CREATETEMPLATE (одна)

 

           

 

      7.71 События ГИП

     

Данный подраздел применяется только при использовании версии БиоАПИ 2.1.     

7.71.1 BioAPI_GUI_SELECT_EVENT_HANDLER (БиоАПИ 2.1)     

7.71.1.1 Функция обратного вызова

 

 

 

typedef BioAPI_RETURN (BioAPl *BioAPI_GUI_SELECT_EVENT_HANDLER)

 

(const BioAPl UUID *BSPUuid,

 

BioAPl_UNIT_ID UnitID,

 

const BioAPl_HANDLE *BSPHandle,

 

BioAPl_GUI_ENROLL_TYPE EnrollType,

 

const void *GUISelectEventHandlerCtx,

 

BioAPl_GUI_OPERATION Operation,

 

BioAPI_GUI_MOMENT Moment,

 

BioAPl_RETURN ResultCode,

 

int32_t MaxNumEnrollSamples,

 

BioAPl_BIR_SUBTYPE_MASK Selectablelnstances,

 

BioAPl_BIR_SUBTYPE_MASK *SelectedInstances,

 

BioAPl_BIR_SUBTYPE_MASK Capturedlnstances,

 

const uint8_t *Text,

 

BioAPl_GUI_RESPONSE *Response);

 

7.71.1.2 Описание

 

Это тип указателя на функцию для функции обработчика событий ГИП приложения, который обрабатывает обратные вызовы уведомления о событии выбора ГИП, исходящие от ПБУ через инфраструктуру БиоАПИ. Для получения уведомлений о событии выбора ГИП приложение должно зарегистрировать функцию обратного вызова типа BioAPl_GUI_SELECT_EVENT_HANDLER путем предоставления адреса обратного вызова функции вместе с адресом контекста в вызове BioAPl_SubscribeToGUIEvents (см. 8.3.8).

 

Инфраструктура производит вызов функции приложения данного типа каждый раз, когда получает входной обратный вызов функции BioSPI_GUI_SELECT_EVENT_HANDLER, которую объявляет для ПБУ. Параметры обратного вызова (кроме GUISelectEventHandlerCtx) должны быть заданы из параметров входящего обратного вызова с теми же именами; параметр GUISelectEventHandlerCtx должен быть задан из адреса контекста выбора ГИП, предоставленного первоначально приложением в его вызове BioAPl_SubscribeToGUIEvents; адрес обратного вызова должен быть задан из адреса обратного вызова выбора ГИП, предоставленного первоначально приложением в вызове BioAPl_SubscribeToGUIEvents.

 

ПБУ может генерировать события выбора ГИП только в процессе выполнения вызова BioAPI_Capture, BioAPI_Verify, BioAPI_Identify_или BioAPI_Enroll. Событие выбора ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START генерируется перед запуском каждого цикла подопераций, а событие выбора ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END генерируется после завершения каждого цикла подопераций (см. 7.66). Основное назначение уведомления о событии выбора ГИП, которое генерируется перед запуском цикла подопераций:

 

1) сообщить приложению о том, что новый цикл подопераций готов к запуску;

 

2) разрешить приложению выбрать экземпляр(ы) для захвата (где возможность подобного выбора поддерживается ПБУ и соответствует используемой биометрической модальности).

 

Основное назначение уведомления о событии выбора ГИП, которое генерируется после завершения цикла подопераций: сообщить приложению о результатах цикла подопераций. Приложение должно ответить каждому уведомлению о событии выбора ГИП путем указания на то, должен ли цикл подопераций запуститься, должна ли операция считаться полностью завершенной, должен ли запуститься новый цикл подопераций или операция должна быть отменена (см. 7.69).

 

Если приложение определяет один или больше экземпляров в параметре Subtype вызова первоначальной функции (BioAPI_Capture, BioAPI_Enroll, BioAPI_Verify или BioAPI_Identify), и этот параметр поддерживается ПБУ, то параметр SelectableInstances задается исходя из значения параметра Subtype.

 

Функция обработки события выбора ГИП и любые другие вызванные функции из этой функции не должны вызывать (непосредственно или косвенно) ни одну функцию БиоАПИ. Возврат значения, отличающегося от BioAPI_ОK, приводит к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.     

7.71.1.3 Параметры

 

BSPUuid (входной) - УУИД, идентифицирующий ПБУ, связанный с событием ГИП.

 

UnitID (входной) - ИД модуля датчика ПБУ, связанного с событием ГИП.

 

BSPHandle (входной) - дескриптор присоединенной сессии ПБУ, связанный с событием ГИП.

 

EnrollType (входной) - тип регистрации ПБУ. Данный параметр имеет значение, только если Operation является BioAPI_GUI_OPERATION_ENROLL.

 

GUISelectEventHandlerCtx (входной) - контекстный адрес, первоначально предоставленный приложением-подписчиком как часть подписки на событие ГИП.

 

Operation (входной) - значение, которое указывает на тип операции, для которой сгенерировано событие ГИП. Допустимы только следующие значения:

 

- BioAPI_GUI_OPERATION_CAPTURE;

 

- BioAPI_GUI_OPERATION_VERIFY;

 

- BioAPI_GUI_OPERATION_IDENTIFY;

 

- BioAPI_GUI_OPERATION_ENROLL.

 

Moment (входной) - значение, которое указывает на то - сгенерировано ли событие ГИП перед запуском цикла подопераций или после завершения цикла подопераций. Допустимы только следующие значения:

 

- BioAPI_GUI_MOMENT_BEFORE_START;

 

- BioAPI_GUI_MOMENT_AFTER_END.

 

ResultCode (входной) - данный параметр является значащим только тогда, когда значением параметра Moment является BioAPI_GUI_MOMENT_AFTER_END, в противном случае ему должно быть задано значение, равное нулю. Если параметр является значащим, то он должен содержать код результата только что завершенного цикла подопераций. Код результата может быть либо BioAPI_ОK, либо код ошибки БиоАПИ.

 

MaxNumEnrollSamples (входной) - данный параметр является значащим только тогда, когда значением параметра Moment является BioAPI_GUI_MOMENT_BEFORE_START. Если параметр является значащим, то он должен содержать максимальное число образцов, которые ПБУ может захватить в течение цикла подопераций, который скоро запустится.

 

Selectablelnstances (входной) - данный параметр является значащим только тогда, когда значением параметра Moment является BioAPI_GUI_MOMENT_BEFORE_START. Если параметр является значащим, то он должен содержать битовую маску, которая определяет какой экземпляр(ы) биометрической модальности может(гут) быть выбран(ы) приложением для захвата в течение цикла подопераций, который скоро запустится. Некоторые ПБУ поддерживают выбор нескольких экземпляров модальности, потому что они могут создать в единственной подоперации захвата единственную ЗБИ, содержащую данные, касающиеся нескольких экземпляров.

 

Selectedlnstances (выходной) - данный параметр является значащим только тогда, когда значением параметра Moment является BioAPI_GUI_MOMENT_BEFORE_START. Если параметр является значащим, то он должен содержать битовую маску, которая определяет какой(ие) экземпляр(ы) биометрической модальности выбран(ы) приложением для захвата в течение цикла подопераций, который скоро запустится.

 

Capturedlnstances (входной) - данный параметр является значащим только тогда, когда значением параметра Moment является BioAPI_GUI_MOMENT_AFTER_END, в противном случае ему должно быть задано значение, равное нулю. Если параметр является значащим, то он должен содержать битовую маску, которая определяет какой (ие) экземпляр(ы) успешно захвачены ПБУ в течение цикла подопераций, который только что завершился.

 

Text (входной) - текстовое сообщение, состоящее из строк символов, закодированных в формате UTF-8 в соответствии с ИСО/МЭК 10646, предназначенное для демонстрации пользователю или оператору. Содержание сообщения и язык, в котором оно выражено, не стандартизированы.

 

Response (выходной) - значение, определяющее ответ приложения на уведомление о событии выбора ГИП (см. 7.69).

 

Примечание - См. также С.7.     

 

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

7.71.1.5 Ошибки:

 

BioAPIERR_USER_CANCELLED

 

BioAPIERR_FUNCTION_FAILED     

7.71.2 BioAPI_GUI_STATE_EVENT_HANDLER (БиоАПИ 2.1)     

 

7.71.2.1 Функция обратного вызова

 

 

 

typedef BioAPI_RETURN (BioAPI *BioAPI_GUI_STATE_EVENT_HANDLER)

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_ID UnitID,

 

const BioAPI_HANDLE *BSPHandle,

 

const void *GUIStateEventHandlerCtx,

 

BioAPI_GUI_OPERATION Operation,

 

BioAPI_GUI_SUBOPERATION Suboperation,

 

BioAPI_BIR_PURPOSE Purpose,

 

BioAPI_GUI_MOMENT Moment,

 

BioAPI_RETURN ResuilCode,

 

int32_t EnrollSamplelndex,

 

const BioAPI_GUI_BITMAP_ARRAY *Bitmaps,

 

const uint8_t *Text,

 

BioAPI_GUI_RESPONSE *Response,

 

int32_t *EnrollSampleIndexToRecapture);

 

7.71.2.2 Описание

 

Данный указатель указывает на функцию обработчика событий ГИП приложения, которая обрабатывает обратные вызовы уведомления о событиях изменения состояния ГИП, исходящие от ПБУ через инфраструктуру БиоАПИ. Для того чтобы получить уведомления о событии изменения состояния ГИП, приложение должно зарегистрировать функцию обратного вызова типа BioAPI_GUI_STATE_EVENT_HANDLER путем предоставления адреса обратного вызова функции вместе с контекстным адресом в вызове BioAPI_SubscribeToGUIEvents (см. 8.3.8).

 

Инфраструктура производит обратный вызов функции приложения данного типа каждый раз, когда получает входящий обратный вызов функции типа BioSPI_GUI_STATE_EVENT_HANDLER, которую она открывает ПБУ. Параметры обратного вызова (кроме GUIStateEventHandlerCtx) должны быть заданы из параметров входящего обратного вызова с теми же наименованиями; параметр GUIStateEventHandlerCtx должен быть задан из контекстного адреса изменения состояния ГИП, предоставленного приложением в его вызове BioAPI_SubscribeToGUIEvents; адрес обратного вызова должен быть задан из адреса обратного вызова изменения состояния ГИП, предоставленного приложением в вызове BioAPI_SubscribeToGUIEvents.

 

ПБУ может генерировать события изменения состояния ГИП только в процессе выполнения вызова BioAPI_Capture, BioAPI_Verify, BioAPI_Identify или BioAPI_Enroll. Событие изменения состояния ГИП со значением момента BioAPI_GUI_MOMENT_BEFORE_START генерируется перед запуском каждой подоперации, а событие изменения состояния ГИП со значением момента BioAPI_GUI_MOMENT_AFTER_END генерируется после завершения каждой подоперации (см. 7.66).

 

Основное назначение уведомления о событии изменения состояния ГИП, которое генерируется перед запуском подоперации: сообщить приложению о том, что определенная подоперация готова к запуску. Основное назначение уведомления о событии изменения состояния ГИП, которое генерируется после завершения подоперации: сообщить приложению о результатах подоперации.

 

Приложение должно ответить каждому уведомлению о событии изменения состояния ГИП путем указания на то, должна ли подоперация запуститься, должен ли цикл подопераций продолжиться следующей подоперацией, должен ли запуститься новый цикл подопераций или операция должна быть отменена (см. 7.69).

 

Функция обработки события выбора ГИП и любые другие вызванные функции из этой функции не должны вызывать (непосредственно или косвенно) ни одну функцию БиоАПИ.

 

Возврат значения, отличающегося от BioAPI_ОK, приводит к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.     

7.71.2.3 Параметры

 

BSPUuid (входной) - УУИД, идентифицирующий ПБУ, связанный с событием ГИП.

 

UnitID (входной) - ИД модуля датчика ПБУ, связанного с событием ГИП.

 

BSPHandle (входной) - дескриптор присоединенной сессии ПБУ, связанный с событием ГИП.

 

GUIStateEventHandlerCtx (входной) - контекстный адрес, первоначально предоставленный приложением-подписчиком как часть подписки на событие ГИП.

 

Operation (входной) - значение, которое указывает на тип операции, для которой сгенерировано событие ГИП. Допустимы только следующие значения:

 

- BioAPI_GUI_OPERATION_CAPTURE;

- BioAPI_GUI_OPERATION_VERIFY;

 

- BioAPI_GUI_OPERATION_IDENTIFY;

 

- BioAPI_GUI_OPERATION_ENROLL.

 

Suboperation (входной) - значение, которое указывает на тип подоперации, для которой сгенерировано событие ГИП (подоперация, которая скоро запустится или только что завершилась). Подоперация должна быть совместима с операцией (см. таблицу 1-5).

 

Purpose (входной) - данный параметр является значащим только тогда, когда значением параметра Suboperation является BioAPI_GUI_SUBOPERATION_CAPTURE, в противном случае ему должно быть задано значение, равное нулю. Если параметр является значащим, то он должен указывать на назначение подоперации захвата (любое значение типа BioAPI_BIR_PURPOSE).

 

Moment (входной) - значение, которое указывает на то, сгенерировано ли событие ГИП перед запуском подоперации или после завершения подоперации. Допустимы только следующие значения:

 

- BioAPI_GUI_MOMENT_BEFORE_START;

 

- BioAPI_GUI_MOMENT_AFTER_END.

 

ResultCode (входной) - данный параметр является значащим только тогда, когда значением параметра Moment является BioAPI_GUI_MOMENT_AFTER_END, в противном случае ему должно быть задано значение, равное нулю. Если параметр является значащим, то он должен содержать код результата только что завершенного цикла подопераций. Код результата может быть либо BioAPI_ОK, либо код ошибки БиоАПИ.

 

EnrollSamplelndex (входной) - данный параметр является значащим только тогда, когда значением параметра Suboperation является BioAPI_GUI_SUBOPERATION_CAPTURE, значением параметра Moment является BioAPI_GUI_MOMENT_BEFORE_START, и образец для регистрации скоро будет захвачен. В противном случае ему должно быть задано значение, равное нулю. Если параметр является значащим, то он должен содержать индекс (целое число от 1 и более) захватываемого для регистрации образца в подоперации захвата, которая скоро запустится.

 

Bitmaps (входной) - последовательность битовых изображений, содержащая изображение(я) образцов, полученных в процессе подоперации, которые предназначены для демонстрации пользователю или оператору. Данная последовательность в основном не содержит битовые изображения или содержит одно битовое изображение, но может содержать несколько битовых изображений, если у ПБУ есть возможность захватывать несколько экземпляров биометрической модальности в течение одной операции захвата.

 

Text (входной) - текстовое сообщение, состоящее из строк символов, закодированных в формате UTF-8 в соответствии с ИСО/МЭК 10646, предназначенное для демонстрации пользователю или оператору. Содержание сообщения и язык, в котором оно выражено, не стандартизированы.

 

Response (выходной) - значение, определяющее ответ приложения на уведомление о событии выбора ГИП (см. 7.69).

 

EnrollSamplelndexToRecapture (выходной) - данный параметр является значащим только тогда, когда значением параметра Suboperation является BioAPI_GUI_SUBOPERATION_CREATETEMPLATE, значением параметра Moment является BioAPI_GUI_MOMENT_AFTER_END, и значением параметра Response является BioAPI_GUI_RESPONSE_RECAPTURE. Если параметр является значащим, то он должен содержать индекс (положительное целое число), полученный ранее для регистрации образца, перезахват которого требует приложение.

 

Пример - Если ПБУ предоставляет функции BioAPI_GUI_SELECT_EVENT_HANDLER тип регистрации многократный-захват, то в каждой операции регистрации функция может захватить три биометрических образца. ПБУ генерирует события изменения состояния перед запуском и после завершения каждой подоперации захвата (когда EnrollSamplelndex заданы значения 1, 2 и 3), за которыми следует событие изменения состояния ГИП перед запуском и после завершения подоперации создания шаблона. Если приложение получает уведомление о событии изменения состояния ГИП перед запуском подоперации создания шаблона, то приложение спрашивает у пользователя, какой из образцов должен быть перемещен. Пользователь выбирает второй образец после просмотра битовых изображений на экране. Приложение задает параметру Response значение BioAPL_GUI_RESPONSE_RECAPTURE, EnrollSamplelndexToRecapture значение 2 и выходит из функции обратного вызова. После этого ПБУ генерирует другое событие изменения состояния ГИП перед запуском и после завершения новой подоперации захвата, когда EnrollSamplelndex задано значение 2, и, наконец, другое событие изменения состояния ГИП перед запуском и после завершения новой подоперации создания шаблона.

 

Примечание - См. также С.7.          

 

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

7.71.2.5 Ошибки:

 

BioAPIERR_USER_CANCELLED

 

BioAPIERR_FUNCTION_FAILED     

7.71.3 BioAPI_GUI_PROGRESS_EVENT_HANDLER (БиоАПИ 2.1)     

7.71.3.1 Функция обратного вызова

 

 

 

typedef BioAPI_RETURN (BioAPI *BioAPI_GUI_PROGRESS_EVENT_HANDLER)

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_ID UnitID,

 

const BioAPI_HANDLE *BSPHandle,

 

const void *GUIProgressEventHandlerCtx,

 

BioAPI_GUI_OPERATION Operation,

 

BioAPI_GUI_SUBOPERATION Suboperation,

 

BioAPI_BIR_PURPOSE Purpose,

 

BioAPI_GUI_MOMENT Moment,

 

uint8_t SuboperationProgress,

 

const BioAPI_GUI_BITMAP_ARRAY *Bitmaps,

 

const uint8_t *Text,

 

BioAPI_GUI_RESPONSE *Response);

 

7.71.3.2 Описание

 

Данный указатель указывает на функцию обработчика событий ГИП приложения, которая обрабатывает обратные вызовы уведомления о событиях выполнения ГИП, исходящие от ПБУ через инфраструктуру БиоАПИ.

 

Для того чтобы получить уведомления о событии выполнения ГИП приложение должно зарегистрировать функцию обратного вызова типа BioAPI_GUI_PROGRESS_EVENT_HANDLER путем предоставления адреса обратного вызова функции вместе с контекстным адресом в вызове BioAPI_SubscribeToGUIEvents (см. 8.3.8).

 

Инфраструктура производит обратный вызов функции приложения данного типа каждый раз, когда получает входящий обратный вызов функции типа BioSPI_GUI_PROGRESS_EVENT_HANDLER, которую она открывает ПБУ. Параметры обратного вызова (кроме GUIProgressEventHandlerCtx) должны быть заданы из параметров входящего обратного вызова с теми же наименованиями; параметр GUIProgressEventHandlerCtx должен быть задан из контекстного адреса ГИП, предоставленного приложением в его вызове BioAPI_SubscribeToGUIEvents; адрес обратного вызова должен быть задан из адреса обратного вызова выполнения ГИП, предоставленного приложением в вызове BioAPI_SubscribeToGUIEvents.

 

ПБУ может генерировать события выполнения ГИП только в процессе выполнения вызова BioAPI_Capture, BioAPI_Process, BioAPI_CreateTemplate, BioAPI_VerifyMatch, BioAPI_IdentifyMatch, BioAPI_Verify, BioAPI_ldentify или BioAPI_Enroll. События могут быть сгенерированы в любое время, даже многократно в течение любой подоперации.

 

Основное назначение уведомления о событии выполнения ГИП: сообщить приложению о степени выполнения любой продолжительной подоперации в процентах (таких как подоперации захвата или идентификации-сопоставления) и отправить приложению потоковые данные (в виде набора битовых изображений), собранные датчиком. Один из возможных способов использования данной информации приложением заключается в демонстрации битовых изображений и индикатора выполнения пользователю или оператору. Приложение должно отвечать каждому уведомлению о событии выполнения ГИП путем указания на то, должна ли подоперация продолжиться или быть прекращена (см. 7.69).

 

Функция обработки события выбора ГИП и любые другие вызванные функции из этой функции не должны вызывать (непосредственно или косвенно) ни одну функцию БиоАПИ.

 

Возврат значения, отличающегося от BioAPI_ОK, приводит к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.     

7.71.3.3 Параметры

 

BSPUuid (входной) - УУИД, идентифицирующий ПБУ, связанный с событием ГИП.

 

UnitID (входной) - ИД модуля датчика ПБУ, связанного с событием ГИП.

 

BSPHandle (входной) - дескриптор присоединенной сессии ПБУ, связанный с событием ГИП.

 

GUIProgressEventHandlerCtx (входной) - контекстный адрес, первоначально предоставленный приложением-подписчиком как часть подписки на событие ГИП.

 

Operation (входной) - значение, которое указывает на тип операции, для которой сгенерировано событие ГИП.

 

Suboperation (входной) - значение, которое указывает на тип подоперации, для которой сгенерировано событие ГИП. Подоперация должна быть совместима с операцией (см. таблицу 1-5).

 

Purpose (входной) - данный параметр является значащим только тогда, когда значением параметра Suboperation является BioAPI_GUI_SUBOPERATION_CAPTURE, в противном случае ему должно быть задано значение, равное нулю. Если параметр является значащим, то он должен указывать на назначение подоперации захвата (любое значение типа BioAPI_BIR_PURPOSE).

 

Moment (входной) - значение, которое указывает на то, сгенерировано ли событие ГИП перед запуском подоперации, в течение подоперации или после завершения подоперации.

 

SuboperationProgress (входной) - степень выполнения подоперации в процентах.

 

Bitmaps (входной) - последовательность битовых изображений, содержащая изображение(я) образцов, полученных в процессе подоперации, которые предназначены для демонстрации пользователю или оператору. Данная последовательность в основном не содержит битовые изображения или содержит одно битовое изображение, но может содержать несколько битовых изображений, если у ПБУ есть возможность захватывать несколько экземпляров биометрической модальности в течение одной операции захвата.

 

Text (входной) - текстовое сообщение, состоящее из строк символов, закодированных в формате UTF-8 в соответствии с ИСО/МЭК 10646, предназначенное для демонстрации пользователю или оператору. Содержание сообщения и язык, в котором оно выражено, не стандартизированы.

 

Response (выходной) - значение, определяющее ответ приложения на уведомление о событии выбора ГИП (см. 7.69).

 

Примечание - См. также С.7.     

 

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

7.71.3.5 Ошибки:

 

BioAPIERR_USER_CANCELLED

 

BioAPIERR_FUNCTION_FAILED     

 

        

 

     7.72 BioAPI_ERROR_INFO (БиоАПИ 2.1)

Данный подраздел применяется только при использовании БиоАПИ версии 2.1.

 

Данная структура используется функцией BioAPI_GetLastErrorlnfo и содержит информацию о последнем типе ошибки, инициировавшем функцию БиоАПИ возвратить код ошибки:

 

 

 

typedef struct bioapi_error_info {

 

int32_t ErrorCode;

 

BioAPI_STRING ErrorMessage;

 

BioAPI_STRING ErrorSourceName;

} BioAPI_ERROR_INFO;

 

Значением элемента ErrorCode является то же самое, что было возвращено последним вызовом функции БиоАПИ, возвратившим код ошибки. Значения остальных элементов не стандартизированы.       

 

Подразделы 7.58; 7.59, 7.59.1-7.59.10; 7.60, 7.60.1-7.60.4; 7.61, 7.61.1-7.61.3; 7.62; 7.63; 7.64; 7.65; 7.66; 7.67; 7.68; 7.69; 7.70; 7.71, 7.71.1-7.71.3; 7.72 (Введены доплнительно, Изм. N 1).

 

 

 

           

 

      8 Функции БиоАПИ

 

 

      8.1 Функции управления компонентом

     

Функции, указанные в этом разделе, обрабатываются инфраструктурой БиоАПИ. Некоторые из них обрабатываются внутренне, а другие передаются ПБУ через ИПУ

 

 

 

      

 

      8.1.1 Функция BioAPI_Init

 

 

BioAPI_RETURN BioAPI BioAPI_Init

 

(BioAPI_VERSION Version);

 

8.1.1.1 Описание

 

Данная функция инициализирует инфраструктуру БиоАПИ и проверяет, совместима ли версия инфраструктуры БиоАПИ, ожидаемой приложением, с версией инфраструктуры БиоАПИ в системе. Данная функция должна быть вызвана приложением, по крайней мере, один раз.

 

Любой вызов функции BioAPI_Init, если предыдущий вызов функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1) не был закончен соответствующим вызовом функции BioAPI_Terminate, будет обработан следующим образом: инфраструктура БиоАПИ выдаст ответ BioAPI_OK (только в том случае, если номер версии инфраструктуры совместим с номером версии, который был предоставлен предыдущим вызовом функции BioAPI_Init или BioAPI_InitEndpoint) или BioAPI_ERR_INCOMPATIBLE_VERSION, но не будет инициализирована повторно. Счетчик числа удачных вызовов BioAPI_Init или BioAPI_InitEndpoint будет сохраняться инфраструктурой и не завершится до тех пор, пока число соответствующих вызовов BioAPI_Terminate не достигнет определенного значения.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ.

 

(Измененная редакция, Изм. N 1).

 

8.1.1.2 Параметры

 

Version (входной) - номер редакции и номер поправки спецификации БиоАПИ, с которой совместимо биометрическое приложение.

 

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

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки в противном случае. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.

 

8.1.1.4 Ошибки

 

BioAPIERR_INCOMPATIBLE_VERSION

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

 

      

 

      8.1.2 Функция BioAPI_Terminate

BioAPI_RETURN BioAPI BioAPI_Terminate (void);

 

8.1.2.1 Описание

 

Данная функция завершает использование инфраструктуры БиоАПИ. Инфраструктура может произвести очистку внутреннего состояния, связанного с запрашивающим приложением.

 

Данная функция может быть вызвана только в том случае, если функция BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1), для которой еще не была вызвана соответствующая функция, ранее была вызвана успешно, по крайней мере, один раз. Функция BioAPI_Terminate не должна вызываться до успешного выполнения функции BioAPI_Init или BioAPI_InitEndpoint (например, вызовы, которые не были закончены связанными вызовами BioAPI_Terminate).

 

Данная функция не должна вызываться приложением, если был сделан вызов функции BioAPI_BSPLoad, для которого не был выполнен соответствующий вызов функции BioAPI_BSPUnload (для данного УУИД ПБУ). Если данная функция должна быть вызвана во время существования загруженных ПБУ, то для каждого вызова функций BioAPI_BSPLoad, для которого не был выполнен вызов функции BioAPI_BSPUnload, инфраструктура БиоАПИ должна неявно выполнить действия, соответствующие отсутствующему вызову BioAPI_BSPUnload (как если бы соответствующая функция была вызвана), а затем выполнить действия, соответствующие BioAPI_Terminate (т.е. инфраструктура должна выгрузить все ПБУ до завершения использования инфраструктуры).

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ, за исключением тех случаев, когда подразумевается выполнение функции BioAPI_BSPUnload, как указано выше.

 

(Измененная редакция, Изм. N 1).

 

8.1.2.2 Параметры

 

Отсутствуют.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

Примечание - Обычно ожидается успешное выполнение функции BioAPI_Terminate; однако при возникновении непредвиденных условий приложение может не предпринимать дальнейшие действия.

 

8.1.2.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

 

      

 

      8.1.3 Функция BioAPI_GetFrameworklnfo

 

 

BioAPI_RETURN BioAPI BioAPI_GetFrameworklnfo

 

(BioAPI_FRAMEWORK_SCHEMA *FrameworkSchema);

 

8.1.3.1 Описание

 

Данная функция возвращает информацию об инфраструктуре БиоАПИ. Так как на компьютере могут быть установлены несколько инфраструктур, приложению требуется информация о них, чтобы выбрать одну для использования.

8.1.3.2 Параметры

 

FwUuid (выходной) - УУИД инфраструктуры, который должен быть одинаковым для всех экземпляров данной инфраструктуры.

 

FrameworkSchema (выходной) - указатель на область памяти, в которую будет возвращена информация о схеме.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.3.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.4 Функция BioAPI_EnumBSPs

 

 

BioAPI_RETURN BioAPI BioAPI_EnumBSPs

 

(BioAPI_BSP_SCHEMA **BSPSchemaArray,

 

uint32_t *NumberOfElements);

 

8.1.4.1 Описание

 

Данная функция предоставляет информацию о всех ПБУ, установленных в реестре компонентов. Функция выполняет действия в следующем порядке:

 

a) выделяет блок памяти, достаточный для хранения массива элементов типа BioAPI_BSP_SCHEMA с числом элементов, равным числу установленных ПБУ;

 

b) заполняет массив схемами установленных ПБУ;

 

c) возвращает адрес массива в параметре BSPSchemaArray и число элементов массива в параметре NumberOfElements.

 

Данная функция может быть вызвана только в том случае, если был сделан, по крайней мере, один вызов функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1), для которого еще не было произведено соответствующего вызова функции BioAPI_Terminate.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Блок памяти, содержащий массив, должен быть освобожден приложением путем вызова функции BioAPI_Free (8.7.2), если приложение в дальнейшем не будет его использовать. Те элементы массива, на которые указывает блок памяти путем параметра Path, также должны быть освобождены приложением с помощью вызова функции BioAPI_Free, если приложение больше не будет использовать элементы массива.

 

(Измененная редакция, Изм. N 1).

 

8.1.4.2 Параметры

 

BspSchemaArray (выходной) - указатель на адрес массива элементов типа BioAPI_BSP_SCHEMA (распределенного инфраструктурой), содержащего информацию о схеме ПБУ.

 

NumElementsReturned (выходной) - указатель на число элементов массива (равно числу схем ПБУ в реестре компонентов).

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.4.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

      8.1.5 Функция BioAPI_BSPLoad

 

 

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 (входной) - УУИД ПБУ, выбранного для загрузки.

 

AppNotifyCallback (входной/необязательный) - функция уведомления о событии, поставляемая вызывающим кодом. Определяет обратный вызов для уведомлений о событиях от загруженного (и позже присоединенного) ПБУ.

 

AppNotifyCallbackCtx (входной) - указатель на контекстную информацию. Когда выбранный поставщик услуги инициирует событие, данное значение передается как входной параметр обработчику события, указанному в AppNotifyCallback.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.5.4 Ошибки

 

 

BioAPIERR_BSP_LOAD_FAIL

BioAPIERR_INVALID_UUID

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.6 Функция BioAPI_BSPUnload

     

 

 

BioAPI_RETURN BioAPI BioAPI_BSPUnload

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_EventHandler AppNotifyCallback,

 

void* AppNotifyCallbackCtx);

 

8.1.6.1 Описание

 

Данная функция выполняет отмену регистрации функции обратного вызова уведомлений о событиях вызывающего кода, указанного в BSPUuid. Функция BioAPI_BSPUnload аналогична вызову функции BioAPI_BSPLoad. Если все обратные вызовы, зарегистрированные БиоАПИ, удалены, то БиоАПИ выгружает (для этого биометрического приложения) ПБУ, загруженный путем вызова функции BioAPI_BSPLoad.

 

Для однозначного определения зарегистрированных обратных вызовов инфраструктура БиоАПИ использует три входных параметра: BSPUuid, AppNotifyCallback и AppNotifyCallbackCtx.

 

Данная функция может быть вызвана (для данного УУИД ПБУ) только в том случае, если был выполнен, по крайней мере, один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого не был выполнен соответствующий вызов данной функции.

 

Данную функцию не следует вызывать, если был выполнен вызов функции BioAPI_BSPAttach, для которого еще не был осуществлен вызов функции BioAPI_BSPDetach  (для данного дескриптора ПБУ). Если данная функция должна быть вызвана, когда ПБУ все еще присоединен, то для каждого вызова функции BioAPI_BSPAttach, для которого не был выполнен вызов функции BioAPI_BSPDetach, инфраструктура БиоАПИ должна неявно выполнить действия, соответствующие отсутствующему вызову функции BioAPI_BSPDetach  (как будто соответствующая функция была вызвана в это время), а затем выполнить действия, соответствующие вызову функции BioAPI_BSPUnload (т.е. инфраструктура должна отсоединить ПБУ до его выгрузки).

 

Это же происходит и в случае, когда действия, соответствующие отсутствующему вызову функции BioAPI_BSPUnload, неявно выполнены инфраструктурой во время вызова функции BioAPI_Terminate (см. 8.1.2).

 

8.1.6.2 Параметры

 

BSPUuid (входной) - УУИД БСП, выбранного для выгрузки.

 

AppNotifyCallback (входной/необязательный) - функция уведомления о событии, для которой будет выполнена отмена регистрации. Функция, которая была передана при вызове функции BioAPI_BSPLoad.

 

AppNotifyCallbackCtx (входной/необязательный) - контекст уведомления о событии, который был предоставлен в соответствующем вызове функции BioAPI_BSPLoad.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.6.4 Ошибки

 

BioAPIERR_INVALID_UUID

BioAPIERR_BSP_NOT_LOADED

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.7 Функция BioAPI_BSPAttach

 

 

BioAPI_RETURN BioAPI BioAPI_BSPAttach

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_VERSION Version,

 

const BioAPI_UNIT_LIST_ELEMENT *UnitList,

 

uint32_t NumUnits,

 

BioAPI_HANDLE *NewBSPHandle);

 

8.1.7.1 Описание

 

Данная функция выполняет присоединение ПБУ и проверяет совместимость ожидаемой приложением версии ПБУ и версии системы. Вызывающий код должен определить список, состоящий из нуля или более модулей БиоАПИ, которые должен использовать вызов ПБУ в создаваемой присоединенной сессии.

 

Данная функция может быть вызвана (для данного УУИД ПБУ) только в том случае, если был выполнен, по крайней мере, один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого не был выполнен соответствующий вызов функции BioAPI_BSPUnload. Функция BioAPI_BSPAttach может быть вызвана несколько раз при каждом вызове функции BioAPI_BSPLoad (перед вызовом функции BioAPI_BSPUnload) для одного и того же ПБУ, создавая несколько вызовов данного ПБУ.

 

При использовании БиоАПИ версии 2.1, если модуль БиоАПИ, используемый в присоединенной сессии, становится недействительным, то и присоединенная сессия должна быть также признана недействительной. Когда присоединенная сессия признана недействительной, то единственными функциями, определяющими дескриптор данной присоединенной сессии, которые можно вызвать, являются функции BioAPI_BSPDetach и BioAPI_GetBlRFromHandle. Все остальные функции должны возвращать BioAPIERR_INVALID_ATTACH_SESSION.

 

Если ПБУ поддерживает события, то он может создать событие "отключения", когда модуль БиоАПИ признан недействительным. При использовании БиоАПИ версии 2.1, если приложение установило обработчик события и не деактивировало уведомления о событии "отключение", то оно получает уведомление о событии "отключение" и может сделать вывод, что все присоединенные сессии (если существуют), использующие отключенный модуль БиоАПИ, на текущий момент недействительны. В дальнейшем приложение может либо удалить эти присоединенные сессии с помощью вызова BioAPI_BSPDetach, либо быть готовым к получению ошибки BioAPIERR_INVALID_ATTACH_SESSION от последующего вызова функции, а потом вызвать BioAPI_BSPDetach.

 

Примечание - Если модуль БиоАПИ был косвенно выбран для присоединенной сессии (либо посредством использования функции BioAPI_DONT_CARE, либо посредством невключения категории модуля в список, предоставленный в качестве входного параметра BioAPI_BSPAttach), то приложение может не знать, какие присоединенные сессии использовали отключенный модуль БиоАПИ и, таким образом, не иметь возможности удалить эти присоединенные сессии без предварительного получения ошибок BioAPIERR_INVALID_ATTACH_SESSION при последующих вызовах функций.

 

(Измененная редакция, Изм. N 1).

 

8.1.7.2 Параметры

 

BSPUuid (входной) - указатель на структуру BioAPI_UUID, содержащую глобальный уникальный идентификатор (УУИД) для ПБУ.

 

Version (входной) - номера редакции и поправки данной спецификации БиоАПИ, которую приложение предлагает ПБУ для поддержки. ПБУ должен определить, совместимы ли его услуги с номером версии приложения.

 

UnitList (входной) - указатель на буфер, содержащий список структур BioAPI_UNIT_LIST_ELEMENT, указывающий ПБУ, какие модули БиоАПИ (поддерживаемые ПБУ) он должен поддерживать в данной прикрепленной сессии. Структуры содержат ИД и категорию каждого модуля БиоАПИ. Для каждой категории модулей БиоАПИ приложение может выбрать одну из следующих возможностей:

 

a) выбор специального модуля БиоАПИ: для определения особого модуля БиоАПИ для использования в данной прикрепленной сессии ИД и категория данного модуля БиоАПИ должна быть предоставлена этому элементу;

 

b) выбор любого модуля БиоАПИ: когда параметр UnitID установлен в BioAPI_DONT_CARE в специальном элементе, ПБУ выберет модуль БиоАПИ данной категории или возвратит ошибку, если он не поддерживает какой-либо модуль БиоАПИ данной категории. Если особая категория не включена в список, ПБУ также выберет для использования модуль БиоАПИ данной категории, если он ее поддерживает (однако ошибка не будет возвращена, если модуль БиоАПИ не поддерживает ее);

 

c) выбор отсутствия модуля БиоАПИ: когда параметр UnitID установлен в BioAPI_DONT_CARE, ПБУ не присоединит модуль БиоАПИ данной категории, даже если он ее поддерживает.

 

Примечание - Любой следующий вызов, требующий использования модуля БиоАПИ данной категории, закончится возвращением ошибки.

 

NumUnits (входной) - число элементов модулей БиоАПИ в списке, на который указывает указатель UnitList. Если этот параметр содержит нулевое значение, то ПБУ выберет модуль БиоАПИ любой категории, которыми ПБУ управляет напрямую или косвенно.

 

Примечание - При каждом вызове биометрическим приложением ПБУ может быть присоединен только один модуль БиоАПИ любой категории.

 

NewBSPHandle (выходной) - новый дескриптор, который может использоваться для взаимодействия с запрошенным ПБУ. Если выполнение функции заканчивается ошибкой, будет установлено значение BioAPI_INVALID_BSP_HANDLE.

 

(Измененная редакция, Изм. N 1).

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет детальное условие ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают условия ошибки.

 

8.1.7.4 Ошибки

 

 

BioAPIERR_INCOMPATIBLE_VERSION

BioAPIERR_BSP_NOT_LOADED

BioAPIERR_INVALID_UNIT_ID

BioAPIERR_INVALID_UUID

BioAPIERR_UNIT_IN_USE

BioAPIERR_INVALID_CATEGORY

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.8 Функция BioAPI_BSPDetach

BioAPI_RETURN BioAPI BioAPI_BSPDetach  

(BioAPI_HANDLE BSPHandle);

 

8.1.8.1 Описание

Данная функция отсоединяет биометрическое приложение от вызова ПБУ.

 

При выполнении данной функции все распределенные ресурсы ПБУ, связанные с прикрепленной сессией ПБУ, должны быть освобождены или признаны недействительными. Это особенно важно для ЗБИ, дескрипторов ПБУ и дескрипторов базы данных. При выполнении данной функции все установленные функции обратного вызова будут недействительными.

 

Данная функция может быть вызвана только после вызова функции BioAPI_BSPAttach и должна вызываться не более одного раза для одного и того же дескриптора ПБУ, созданного вызовом функции BioAPI_BSPAttach.

 

8.1.8.2 Параметры

 

BSPHandle (входной) - дескриптор, идентифицирующий присоединенную сессию ПБУ, которая должна быть прекращена.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.8.4 Ошибки

 

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.9 Функция BioAPI_QueryUnits

 

 

BioAPI_RETURN BioAPI BioAPI_QueryUnits

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_SCHEMA **UnitSchemaArray,

 

uint32_t *NumberOfElements);

 

8.1.9.1 Описание

 

Данная функция предоставляет информацию обо всех модулях БиоАПИ, которые непосредственно или косвенно управляются ПБУ, идентифицированных предоставляемым УУИД ПБУ и присутствующих в системе. Функция выполняет действия в следующем порядке:

 

a) устанавливает число модулей БиоАПИ, которые будут управляться непосредственно или косвенно данным ПБУ;

 

b) выделяет блок памяти, достаточный для размещения массива элементов типа BioAPI_UNIT_SCHEMA с числом элементов, равным числу модулей БиоАПИ, определенному в перечислении а);

 

c) заполняет массив схемами всех модулей БиоАПИ, определенных в перечислении а);

 

d) возвращает адрес массива в параметре UnitSchemaArray и размер массива в параметре NumberOfElements.

 

Примечание - Когда инфраструктура вызывает функцию ПБУ BioSPI_QueryUnits, ПБУ выделяет память для данных, которые должны быть возвращены инфраструктуре. В некоторых реализациях архитектуры инфраструктура передает данные приложению в точности о том, как возвращено ПБУ, так как приложение интерпретирует адрес так же, как и ПБУ, и сможет получить доступ к данным, которые размещены по этому адресу. В других реализациях архитектуры инфраструктура должна переместить все данные, возвращенные ПБУ, во вновь выделенный блок памяти, доступный приложению, и вызвать функцию BioSPI_Free после копирования каждого блока памяти, но перед возвращением вызова BioAPI_QueryUnits. В первом случае, когда приложение вызывает функцию BioAPI_Free, инфраструктура делает соответствующий вызов BioSPI_Free. Во втором случае вызов BioAPI_Free обрабатывается самой инфраструктурой. Однако особенности данных реализаций инфраструктуры не видны приложению.

 

Блок памяти, содержащий массив, должен быть освобожден приложением путем вызова функции BioAPI_Free (см. 8.7.2), если он больше не нужен приложению. Блок памяти, на который ссылаются элементы UnitProperties в пределах каждого элемента массива, должен также быть освобожден приложением путем вызова функции BioAPI_Free, если он больше не нужен приложению. Данная функция может быть вызвана только после вызова функции BioAPI_Load для ПБУ и не может быть вызвана после вызова функции BioAPI_Unload для ПБУ.

 

8.1.9.2 Параметры

 

BSPUuid (входной) - УУИД ПБУ, на который должна быть возвращена информация о модуле.

 

UnitSchemaArray (выходной) - указатель на массив элементов типа BioAPI_UNIT_SCHEMA (распределенный ПБУ, см. примечание к 8.1.9.1), содержащий информацию о схемах модуля.

 

NumberOfElements (выходной) - указатель на число элементов массива.

 

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

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.9.4 Ошибки

 

 

BioAPIERR _BSP_NOT_LOADED

BioAPIERR_INVALID_UUID

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.10 Функция BioAPI_EnumBFPs

 

 

BioAPI_RETURN BioAPI BioAPI_EnumBFPs

 

(BioAPI_BFP_SCHEMA **BFPSchemaArray,

 

uint32_t *NumberOfElements);

 

8.1.10.1 Описание

 

Данная функция предоставляет информацию обо всех ПБУ, установленных в данное время в реестре компонентов, и выполняется в следующем порядке:

 

a) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_BFP_SCHEMA с числом элементов, равным числу установленных ПБУ;

 

b) заполняет массив схемами всех установленных ПБУ;

 

c) возвращает адрес массива в параметре BSPSchemaArray и размер массива в параметре NumberOfElements.

 

Данная функция может быть вызвана только в том случае, если был сделан, по крайней мере, один вызов функции BioAPI_Init или BioAPI_InitEndpoint (только в БиоАПИ 2.1), для которого еще не был сделан соответствующий вызов функции BioAPI_Terminate.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Область памяти, содержащая массив, должна быть освобождена приложением с помощью вызова функции BioAPI_Free (см. 8.7.2) в том случае, если он больше не нужен приложению.

 

Область памяти, на которую указывают параметры Path и BFPProperty в пределах каждого элемента массива, также должна быть освобождена приложением путем вызова функции BioAPI_Free, если элементы массива не используются приложением.

 

(Измененная редакция, Изм. N 1).

 

8.1.10.2 Параметры

 

BfpSchemaArray (выходной) - указатель на массив элементов типа BioAPI_UNIT_SCHEMA (распределенный инфраструктурой), содержащих информацию о схемах ПБУ.

 

NumberOfElements (выходной) - указатель на число элементов массива, равное числу схем ПБУ в реестре компонентов.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.10.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.11 Функция BioAPI_QueryBFPs

 

 

BioAPI_RETURN BioAPI BioAPI_QueryBFPs

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_BFP_LIST_ELEMENT **BFPList,

 

uint32_t *NumberOfElements);

 

8.1.11.1 Описание

 

Данная функция возвращает список ПБФ, которые установлены в данный момент в реестре компонентов и поддерживаются ПБУ, идентифицированным УУИД ПБУ. Функция выполняет действия в следующем порядке:

 

a) определяет число установленных ПБФ, поддерживаемых данным ПБУ;

 

b) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_BFP_LIST_ELEMENT с числом элементов ПБФ, определенным в перечислении а);

 

c) заполняет массив идентификационной информацией (категория и УУИД) о ПБФ, определенных в перечислении а);

 

d) возвращает адрес массива в параметре BFPList и число элементов массива в параметре NumberOfElements.

 

Примечание - Когда инфраструктура вызывает функцию ПБУ BioSPI_QueryBSPs, ПБУ выделяет память для данных, которые должны быть возвращены инфраструктуре. В некоторых реализациях архитектуры инфраструктура передает данные приложению точно так же, как их возвращает ПБУ, так как приложение интерпретирует адрес так же, как и ПБУ и сможет получить доступ к данным, которые размещены ПБУ по этому адресу. В других реализациях архитектуры инфраструктура должна переместить все данные, возвращенные ПБУ, во вновь выделенную область памяти, доступную приложению, и вызвать функцию BioSPI_Free после копирования каждого блока памяти, но перед возвращением вызова BioAPI_QueryBSP. В первом случае, когда приложение вызывает функцию BioAPI_Free, инфраструктура делает соответствующий вызов BioSPI_Free. Во втором случае вызов функции BioAPI_Free обрабатывается инфраструктурой. Однако различия реализации инфраструктуры приложение не обнаруживает.

 

Дополнительная информация о поддерживаемых ПБФ может быть получена путем вызова функции BioAPI_EnumBFPs и анализом параметра BFPSchemaArray по соответствующим BfpUuids.

 

Данная функция может быть вызвана только после вызова функции BioAPI_Load для специального ПБУ и не может быть вызвана после вызова функции BioAPI_Unload для ПБУ.

 

Область памяти, содержащая массив, должна быть освобождена приложением путем вызова функции BioAPI_Free (см. 8.7.2) в том случае, если приложение больше не использует элементы массива.

 

8.1.11.2 Параметры

 

BSPUuid (входной) - УУИД ПБУ, по которому должна быть возвращена информация о ПБФ.

 

BFPList (выходной) - указатель на массив элементов типа BioAPI_BFP_LIST_ELEMENT (распределенный ПБУ, см. примечание выше) и буфер, содержащий идентификационную информацию о ПБФ.

 

NumberOfElements (выходной) - указатель на число элементов массива.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.11.4 Ошибки

 

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.1.12 Функция BioAPI_ControlUnit

 

 

 

BioAPI_RETURN BioAPI BioAPI_ControlUnit

 

(BioAPI_HANDLE BSPHandle,

 

BioAPI_UNIT_ID UnitlD,

 

uint32JControlCode,

 

const BioAPI_DATA *lnputData,

 

BioAPI_DATA *OutputData);

 

8.1.12.1 Описание

 

Данная функция посылает управляющие данные от приложения модулю БиоАПИ и получает обратно данные состояния или рабочие данные. Содержание параметра ControlCode посылаемых (входных) и получаемых (выходных) данных должно быть определено в спецификации на интерфейс для данного модуля БиоАПИ или связанного ИПФ в том случае, если он присутствует.

Данная функция выделяет область памяти, достаточную для размещения выходных данных, которые должны быть возвращены приложению, заполняет блок данными и записывает в поля Length и Data структуры OutputData размер и адрес блока памяти соответственно.

 

Блок памяти, возвращенный при вызове функции БиоАПИ, должен быть освобожден приложением путем вызова функции BioAPI_Free (8.7.2).

 

8.1.12.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

Unitld - ИД модуля БиоАПИ.

 

ControlCode (входной) - код функции в вызываемом модуле БиоАПИ.

 

InputData (входной) - указатель на структуру BioAPI-DATA, содержащую адрес и длину буфера данных, которые должны быть посланы модулю БиоАПИ в соответствии с данным ControlCode.

 

OutputData (выходной) - указатель на структуру BioAPI-DATA. На выходе она должна содержать адрес и длину буфера данных, содержащего данные, полученные от модуля БиоАПИ после обработки функции, указанной в ControlCode. Если функция не выделила область памяти, то адрес должен быть установлен на пустой указатель, а длина буфера задана равной нулю.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.12.4 Ошибки

 

 

BioAPIERR_BIOAPI_UNIT_NOT_INSERTED

BioAPIERR_INVALID_UNIT_ID

BioAPIERR_UNIT_IN_USE

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.       

 

  

 

    8.1.13 Функция BioAPI_Control (БиоАПИ 2.1)

     

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_Control

 

(BioAPI_HANDLE BSPHandle,

 

BioAPI_UNIT_ID UnitID,

 

const BioAPI_UUID *ControlCode,

 

const BioAPI_DATA *InputData,

 

BioAPI_DATA *OutputData);

 

8.1.13.1 Описание

 

Данная функция посылает управляющие данные от приложения модулю БиоАПИ и получает обратно данные состояния или рабочие данные. Содержание параметра ControlCode посылаемых (входных) данных и получаемых (выходных) данных должно быть определено в спецификации на интерфейс для данного модуля БиоАПИ (или связанного ИПФ в том случае, если он присутствует).

 

Данная функция выделяет область памяти, достаточную для размещения выходных данных, которые должны быть возвращены приложению, заполняет блок данными и записывает в поля Length и Data структуры OutputData размер и адрес блока памяти (соответственно).

 

Область памяти, возвращенная при вызове функции БиоАПИ, должна быть освобождена приложением путем вызова функции BioAPI_Free (8.7.2).     

8.1.13.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

Unitld (входной) - ИД модуля БиоАПИ.

 

ControlCode (входной) - код функции в вызываемом модуле БиоАПИ.

 

InputData (входной) - адрес и длина буфера данных, которые должны быть посланы модулю БиоАПИ в соответствии с полученным ControlCode.

 

OutputData (выходной) - указатель на структуру BioAPI_DATA. На выходе она должна содержать адрес и длину буфера данных, содержащего данные, полученные от модуля БиоАПИ после обработки функции, указанной в ControlCode. Если функция не выделила область памяти, то адрес должен быть установлен на пустой указатель, а длина буфера задана равной нулю.     

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_ОK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.1.13.4 Ошибки

 

BioAPIERR_BIOAPI_UNIT_NOT_INSERTED

BioAPIERR_INVALID_UNIT_ID

BioAPIERR_UNIT_IN_USE

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

           

 

 

      8.1.14 Функция BioAPI_Transform (БиоАПИ 2.1)

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_Transform

 

(BioAPI_HANDLE BSPHandle,

 

const BioAPI_UUID *OperationUUID,

 

const BioAPI_INPUT_BIR *InputBIRs,

 

uint32_t NumberOflnputBIRs,

 

BioAPI_BIR_HANDLE **OutputBIRs,

 

uint32_t *NumberOfOutputBIRs);

 

8.1.14.1 Описание

 

Данная функция трансформирует одну или несколько ЗБИ, предоставленных в качестве входного параметра, в одну или несколько ЗБИ, предоставленных в качестве выходного параметра. Выполняемая трансформация определяется параметром OperationUUID.

 

Настоящий стандарт не устанавливает никаких стандартных значений для параметра OperationUUID и не устанавливает никаких определенных трансформаций. Предполагается, что значения OperationUUID и их семантика будут установлены либо поставщиком определенного ПБУ, либо в дополнительных спецификациях (таких как сведения о приложении).

 

Данная функция выполняет действия в следующем порядке:

 

a) выполняет трансформацию, определенную параметром OperationUUID, используя ЗБИ, предоставленные в качестве входного параметра, и создавая одну или несколько выходных ЗБИ, как требуется для определенной трансформации;

 

b) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_BIR_HANDLE с числом элементов, равным числу созданных выходных ЗБИ в перечислении а);

 

c) заполняет массив информацией о дескрипторах ЗБИ, созданных в качестве выходного параметра в перечислении а); и

 

d) возвращает адрес массива в параметре OutputBIRs и размер массива в параметре NumberOfOutputBIRs.

 

Область памяти, возвращаемая вызовом функции БиоАПИ, должна быть освобождена приложением с помощью функции BioAPI_Free (см. 8.7.2), а все существующие в массиве OutputBIRs дескрипторы ЗБИ должны быть удалены путем вызова функции BioAPI_FreeBIRHandle.

8.1.14.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

OperationUUID (входной) - УУИД, определяющий трансформацию, выполняемую ПБУ.

 

InputBIRs (входной) - массив ЗБИ (содержащий одну или несколько ЗБИ), предоставленных в качестве входного параметра трансформации.

 

NumberOflnputBIRs (входной) - число ЗБИ в массиве InputBIRs.

 

OutputBIRs (выходной) - указатель на адрес массива, состоящий из элементов типа BioAPI_BIR_HANDLE и содержащий дескрипторы выходных ЗБИ, созданные трансформацией.

 

NumberOfOutputBIRs (выходной) - указатель на число элементов массива OutputBIRs.                 

   

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_ОK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.     

8.1.14.4 Ошибки

 

BioAPIERR_BIOAPI_UNIT_NOT_INSERTED

BioAPIERR_UNIT_IN_USE

BioAPIERR_TRANSFORMATION_NOT_SUPPORTED

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.               

 

 

      8.1.15 Функция BioAPI_InitEndpoint (БиоАПИ 2.1)

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_InitEndpoint

 

(BioAPI_VERSION Version,

const uint8_t *LocalEndpointIRI);

 

                

8.1.15.1 Описание

 

Данная функция выполняет те же действия, что и функция BioAPI_Init.

 

Приложения, соответствующие настоящему стандарту, должны либо не вызывать функцию, либо (если вызывают ее) должны установить данный параметр localEndpointlRI на пустой указатель. Функция предоставлена для поддержки стандартов межсетевого обмена.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ.     

8.1.15.2 Параметры

 

Version (входной) - номер редакции и номер поправки спецификации БиоАПИ, с которой совместимо биометрическое приложение.

 

LocalEndpointlRI - данный параметр должен быть проигнорирован инфраструктурами, соответствующими этому разделу настоящего стандарта, и должен быть установлен на пустой указатель приложением. Он предоставлен для поддержки стандартов межсетевого обмена.     

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.1.15.4 Ошибки

 

BioAPIERR_INCOMPATIBLE_VERSION

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

  

 

      8.1.16 Функция BioAPI_LinkToEndpoint (БиоАПИ 2.1)

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_LinkToEndpoint

 

(const uint8_t *SlaveEndpointIRI);

 

   

8.1.16.1 Описание

 

Данная функция не выполняет никаких действий и предоставлена для измененных спецификаций, содержащихся в стандартах межсетевого обмена, которые определяют применение инфраструктур БиоАПИ, установленных на нескольких компьютерах, из приложения, работающего на том же или другом компьютере. В этих стандартах данная функция может быть использована для соединения приложения с инфраструктурой, работающей на другом компьютере, таким образом, предоставляя приложению доступ к ПБУ, управляемому этой же инфраструктурой.

 

Приложения, соответствующие настоящему стандарту, должны либо не вызывать функцию, либо (если вызывают ее) должны установить данный параметр SlaveEndpointlRI на пустой указатель. Функция предоставлена для поддержки стандартов межсетевого обмена.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ.     

8.1.16.2 Параметры

 

SlaveEndpointlRI - данный параметр должен быть проигнорирован инфраструктурами, соответствующими этому разделу настоящего стандарта, и должен быть установлен на пустой указатель приложением. Он предоставлен для поддержки стандартов межсетевого обмена.     

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.1.16.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

      8.1.17 Функция BioAPI_UnlinkFromEndpoint (БиоАПИ 2.1)

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_UnlinkFromEndpoint

 

(const uint8_t *SlaveEndpointIRI);

 

8.1.17.1 Описание

 

Данная функция не выполняет никаких действий и предоставлена для измененных спецификаций, содержащихся в стандартах межсетевого обмена, которые определяют применение инфраструктур БиоАПИ, установленных на нескольких компьютерах из приложения, работающего на том же или другом компьютере. В этих стандартах данная функция может быть использована для разрушения соединения между приложением и инфраструктурой.

 

Приложения должны либо не вызывать функцию, либо (если вызывают ее) должны установить данный параметр SlaveEndpointlRI на пустой указатель.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ.

 

8.1.17.2 Параметры

 

SlaveEndpointlRI - данный параметр должен быть проигнорирован инфраструктурами, соответствующими этому разделу настоящего стандарта, и должен быть установлен на пустой указатель приложением. Он предоставлен для поддержки стандартов межсетевого обмена.     

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.1.17.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

  

 

      8.1.18 Функция BioAPI_EnumFrameworks (БиоАПИ 2.1)

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_EnumFrameworks

 

(BioAPI_FRAMEWORK_SCHEMA **FwSchemaArray,

 

unit32_t *NumberOfElements);

 

8.1.18.1 Описание

 

Данная функция схожа с функцией BioAPI_GetFrameworklnfo, но позволяет получить информацию о нескольких инфраструктурах БиоАПИ при использовании спецификации, предоставленной стандартом межсетевого обмена.

 

В спецификации, предоставленной в настоящем стандарте, данная функция возвращает информацию об одной инфраструктуре и, следовательно, аналогична BioAPI_GetFrameworklnfo (хотя и с разными параметрами).

 

Данная функция предоставляет информацию обо всех инфраструктурах БиоАПИ, которые на текущий момент видны приложению (только одна, за исключением использования стандарта межсетевого обмена). Данная функция выполняет действия в следующем порядке:

 

a) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_FRAMEWORK_SCHEMA с числом элементов, равным числу видимых инфраструктур;

 

b) заполняет массив схемами инфраструктур для всех видимых инфраструктур; и

 

c) возвращает адрес массива в параметре FwSchemaArray и число элементов массива в параметре NumberOfElements.

 

Данная функция должна вызываться только в том случае, если был произведен хотя бы один вызов BioAPl_Init или BioAPI_InitEndpoint, для которого еще не было произведено соответствующего вызова BioAPI_Terminate.

 

Данная функция обрабатывается в Инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Область памяти, содержащая массив, должна быть освобождена приложением с помощью вызова функции BioAPI_Free (см. 8.7.2), в том случае если она больше не используется приложением. Области памяти, указанные элементами Path и HostingEndpoint в рамках каждого элемента массива, также должны быть освобождены приложением с помощью вызова функции BioAPI_Free, в том случае, если они больше не используются приложением.     

 

8.1.18.2 Параметры

 

BFPSchemaArray (выходной) - указатель на адрес массива элементов типа BioAPI_FRAMEWORK_SCHEMA (распределенного инфраструктурой), содержащего информацию о схемах инфраструктур.

 

NumberOfElements (выходной) - указатель на число элементов массива (число инфраструктур, на текущий момент видимых приложению - только одна, за исключением использования стандарта межсетевого обмена).     

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.1.18.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

8.1.13-8.1.18 (Введены дополнительно, Изм. N 1).

 

 

      8.2 Операции над дескриптором данных

 

 

      8.2.1 Операция BioAPI_FreeBIRHandle

BioAPI_RETURN BioAPI BioAPI_FreeBIRHandle

(BioAPI_HANDLE BSPHandle,

BioAPI_BIR_HANDLE Handle);

8.2.1.1 Описание

 

Данная функция освобождает память и ресурсы, связанные с указанным дескриптором ЗБИ. Связанная с вызовом данной функции ЗБИ больше не может быть получена по этому дескриптору. При необходимости биометрическое приложение может сохранить ЗБИ в базе данных, управляемой ПБУ (путем вызова функции BioAPI_DbStoreBIR), перед вызовом функции BioAPI_FreeBIRHandle. В качестве альтернативы приложение может вызвать функцию BioAPI_GetBIRFromHandle, которая восстановит ЗБИ и очистит дескриптор, вместо вызова функции BioAPI_FreeBIRHandle.

 

Данная функция может быть вызвана только после вызова функции BioAPI_BSPAttach и не может быть вызвана по окончании выполнения функции BioAPI_BSPDetach для дескриптора ПБУ, созданного при выполнении функции BioAPI_BSPAttach.

 

8.2.1.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

Handle (входной) - освобождаемый дескриптор ЗБИ.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.2.1.4 Ошибки

 

 

BioAPIERR_INVALID_BIR_HANDLE

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.2.2 Операция BioAPI_GetBIRFromHandle

 

 

BioAPI_RETURN BioAPI BioAPI_GetBIRFromHandle

 

(BioAPI_HANDLE_BSPHandle,

 

BioAPI_BIR_HANDLE Handle,

 

BioAPI_BIR *BIR);

 

8.2.2.1 Описание

 

Данная функция извлекает ЗБИ, связанную с дескриптором ЗБИ, возвращаемым ПБУ. Перед окончанием выполнения функции ПБУ освобождает дескриптор ЗБИ.

 

8.2.2.2 Параметры

 

BSPHandle (входной) - дескриптор ПБУ БиоАПИ.

 

Handle (входной) - дескриптор извлекаемой ЗБИ.

 

BIR (выходной) - указатель на извлеченную ЗБИ.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.2.2.4 Ошибки

 

 

BioAPIERR_INVALID_BIR_HANDLE

BioAPIERR_INVALID_BSP_HANDLE

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.2.3 Операция BioAPI_GetHeaderFromHandle

 

 

BioAPI_RETURN BioAPI BioAPI_GetHeaderFromHandle

 

(BioAPI_HANDLE_BSPHandle,

 

BioAPI_BIR_HANDLE Handle,

 

BioAPI_BIR_HEADER*Header);

 

8.2.3.1 Описание

 

Данная функция извлекает заголовок ЗБИ, связанной с данным дескриптором. ПБУ не освобождает дескриптор ЗБИ.

 

8.2.3.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

Handle (входной) - дескриптор ЗБИ, заголовок которой должен быть извлечен.

 

Header (выходной) - заголовок указанной ЗБИ.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.2.3.4 Ошибки

 

 

BioAPIERR_INVALID_BIR_HANDLE

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.3 Обратные вызовы и работа с событиями

 

 

      8.3.1 Функция BioAPI_EnableEvents

     

 

 

BioAPI_RETURN BioAPI BioAPI_EnableEvents

 

(BioAPI_HANDLE BSPHandle,

 

BioAPI_EVENT_MASK Events);

 

8.3.1.1 Описание

 

Данная функция разрешает события, указанные в маске событий, исходящие от всех модулей БиоАПИ, выбранных в прикрепленной сессии ПБУ, идентифицированной дескриптором ПБУ, и отключает все другие события от этих модулей БиоАПИ. События от других модулей БиоАПИ, непосредственно или косвенно управляемых тем же ПБУ (которые могут быть выбраны в другой прикрепленной сессии и не выбраны в данной), не обрабатываются. Применение данной функции не рекомендуется при использовании БиоАПИ версии 2.1. В этом случае должна использоваться функция BioAPI_EnableEventNotifications.

 

В некоторых случаях событие "вставка" не может быть заблокировано.

 

(Измененная редакция, Изм. N 1).

 

8.3.1.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

Events (входной) - маска, обозначающая разрешенные события.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.

 

8.3.1.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

 

      

 

      8.3.2 Функция BioAPI_SetGUICallbacks (БиоАПИ 2.0)

             

Данный пункт применяется только при использовании версии БиоАПИ 2.0.       

           

 

 

BioAPI_RETURN BioAPI BioAPI_SetGUICallbacks

 

(BioAPI_HANDLE BSPHandle,

 

BioAPI_GUI_STREAMING_CALLBACK GuiStreamingCallback,

 

void *GuiStreamingCallbackCtx,

 

BioAPI_GUI_STATE_CALLBACK GuiStateCallback,

 

void *GuiStateCallbackCtx);

 

(Измененная редакция, Изм. N 1).     

8.3.2.1 Описание

 

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

 

Примечание - Не все ПБУ поддерживают функцию предоставления потоковых данных.

 

8.3.2.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного поставщика биометрической услуги .

 

GuiStreamingCallback (входной) - указатель на обратный вызов приложения для взаимодействия с представлением потоковых биометрических данных.

 

GuiStreamingCallbackCtx (входной) - указатель на контекстную информацию, предоставленную приложением, которая будет представлена в обратном вызове.

 

GuiStateCallback (входной) - указатель на обратный вызов приложения для взаимодействия с изменениями состояния ГИП.

 

GuiStateCallbackCtx (входной) - указатель на контекстную информацию, предоставленную приложением, которая будет представлена в обратном вызове.

 

Примечание 1 - Определения функциональных подтипов для BioAPI_GUI_STATE_CALLBACK и BioAPI_GUI_STREAMING_CALLBACK приведены в 7.36 и 7.37 соответственно.

 

Примечание 2 - Определение интерфейса пользователя приведено в приложении С, раздел С.7.

 

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

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают условия ошибки.

 

8.3.2.4 Ошибки

 

BioAPIERR_INVALID_POINTER

BioAPIERR_INVALID_BSP_HANDLE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.                

 

  

 

     8.3.3 Функция BioAPI_NotifyGUIProgressEvent (БиоАПИ 2.1)

     

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_NotifyGUIProgressEvent

 

(const uint8_t *SubscriberEndpointIRI,

 

const BioAPI_UUID *GUIEventSubscriptionUuid,

 

const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_ID UnitID,

 

BioAPI_GUI_OPERATION Operation,

 

BioAPI_GUI_SUBOPERATION Suboperation,

 

BioAPI_BIR_PURPOSE Purpose,

 

BioAPI_GUI_MOMENT Moment,

 

uint8_t SuboperationProgress,

 

const BioAPI_GUI_BITMAP_ARRAY *Bitmaps,

 

const uint8_t Text,

 

BioAPI_GUI_RESPONSE *Response);

 

8.3.3.1 Описание

 

Данная функция дает возможности приложению требовать того, чтобы событие выполнения ГИП, сгенерированное приложением, было направлено в подписку определенного именованного события ГИП. Событие ГИП, переданное данной функции, называется событием ГИП, сгенерированным приложением.

 

При вызове данной функции инфраструктура должна просматривать все существующие именованные подписки на события ГИП, созданные приложением, идентифицированным SubscriberEndpointlRI (пустой указатель - текущее приложение), в поисках подписки, в которой адрес обратного вызова для события выполнения ГИП установлен на непустой указатель, а УУИД подписки на событие ГИП тот же, что и GUIEventSubscriptionUuid. При наличии подписки на сопоставление инфраструктура должна произвести обратный вызов обработчику события выполнения ГИП, определенного в подписке, задавая входные параметры обратного вызова из входных параметров вызова BioAPI_NotifyGUIProgressEvent с теми же наименованиями. После возврата из функции обратного вызова инфраструктура должна скопировать выходные параметры обратного вызова в выходные параметры вызова BioAPI_NotifyGUIProgressEvent с теми же наименованиями.

 

Если совпадающих именованных подписок на событие ГИП не существует, то функцией возвращается BioAPI_NO_GUI_EVENT_HANDLER.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.     

 

8.3.3.2 Параметры

 

SubscriberEndpointlRI - интернационализированный идентификатор ресурсов, идентифицирующий приложение, создавшее одну или больше подписок на событие ГИП. Параметр должен быть установлен на пустой указатель, если данное приложение является текущим приложением. Приложение может узнать об интернационализированных идентификаторах ресурсов конечной точки подписчика других приложений, использующих инфраструктуру (и создавших одну или больше именованных подписок на событие ГИП для установленного ПБУ) путем вызова BioAPI_QueryGUIEventSubscriptions. Если других приложений, использующих инфраструктуру, не существует, то ИИР конечной точки подписчика установлены на пустые указатели во всех именованных подписках, возвращенных BioAPI_QueryGUIEventSubscriptions.

 

GUIEventSubscriptionUuid - УУИД, идентифицирующий именованную подписку на событие ГИП. Данный параметр не должен быть установлен на пустой указатель. В некоторых случаях приложение получает данный УУИД из информации, возвращенной предшествующим вызовом BioAPI_QueryGUIEventSubscriptions; в других случаях приложение предоставляет известный УУИД.

 

Другие параметры определяют событие выполнения ГИП, сгенерированное приложением.     

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.3.4 Ошибки

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

      8.3.4 Функция BioAPI_NotifyGUISelectEvent (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI_BioAPI_NotifyGUISelectEvent

 

(const uint8__t *SubscriberEndpointIRI,

 

const BioAPI_UUID *GUIEventSubscriptionUuid,

 

const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_ID UnitID,

 

BioAPI_GUI_OPERATION Operation,

 

BioAPI_GUI_MOMENT Moment,

 

BioAPI_RETURN ResultCode,

 

int32_t MaxNumEnrollSamples,

 

BioAPI_BIR_SUBTYPE_MASK Selectablelnstances,

 

BioAPI_BIR_SUBTYPE_MASK *SelectedInstances,

 

BioAPI_BIR_SUBTYPE_MASK Capturedlnstances,

 

const uint8_t *Text,

 

BioAPI_GUI_RESPONSE *Response);

 

             

8.3.4.1 Описание

 

Данная функция дает возможности приложению требовать того, чтобы событие выбора ГИП, сгенерированное приложением, было привязано в подписку определенного именованного события ГИП. Событие ГИП, переданное данной функции, называется событием ГИП, сгенерированным приложением.

 

При вызове данной функции инфраструктура должна просматривать все существующие именованные подписки на события ГИП, созданные приложением, идентифицированным SubscriberEndpointlRI (пустой указатель - текущее приложение), в поисках подписки, в которой адрес обратного вызова для события выполнения ГИП установлен на непустой указатель, а УУИД подписки на событие ГИП тот же, что и GUIEventSubscriptionUuid. При наличии подписки на сопоставление инфраструктура должна произвести обратный вызов обработчику события выбора ГИП, определенного в подписке, задавая входные параметры обратного вызова из входных параметров вызова BioAPI_NotifyGUISelectEvent с теми же наименованиями. После возврата из функции обратного вызова инфраструктура должна скопировать выходные параметры обратного вызова в выходные параметры вызова BioAPI_NotifyGUISelectEvent с теми же наименованиями.

 

Если совпадающих именованных подписок на событие ГИП не существует, то функцией возвращается BioAPI_NO_GUI_EVENT_HANDLER.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.     

8.3.4.2 Параметры

 

SubscriberEndpointlRI (входной, дополнительный) - интернационализированный идентификатор ресурсов, идентифицирующий приложение, создавшее одну или больше подписок на событие ГИП. Параметр должен быть установлен на пустой указатель, если данное приложение является текущим приложением. Приложение может узнать об интернационализированных идентификаторах ресурсов конечной точки подписчика других приложений, использующих инфраструктуру (и создавших одну или больше именованных подписок на событие ГИП для установленного ПБУ) путем вызова BioAPI_QueryGUIEventSubscriptions. Если других приложений, использующих инфраструктуру, не существует, то ИИР конечной точки подписчика установлены на пустые указатели во всех именованных подписках, возвращенных BioAPI_QueryGUIEventSubscriptions.

 

GUIEventSubscriptionUuid (входной) - УУИД, идентифицирующий именованную подписку на событие ГИП. Данный параметр не должен быть установлен на пустой указатель. В некоторых случаях приложение получает данный УУИД из информации, возвращенной предшествующим вызовом BioAPI_QueryGUIEventSubscriptions; в других случаях приложение предоставляет известный УУИД.

 

Другие параметры определяют событие выбора ГИП, сгенерированное приложением.     

 

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.4.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

 

      8.3.5 Функция BioAPI_NotifyGUISelectEvent (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_NotifyGUIStateEvent

 

(const uint8_t *SubsriberEndpointIRI,

 

const BioAPI_UUID *GUIEventSubscriptionUuid,

 

const BioAPI_UUID *BSPUuid,

 

BioAPI_UNIT_ID UnitID,

 

BioAPI_GUI_OPERATION Operation,

 

BioAPI_GUI_SUBOPERATION Suboperation,

 

BioAPI_BIR_PURPOSE Purpose,

 

BioAPI_GUI_MOMENT Moment,

 

BioAPI_RETURN ResultCode,

 

int32_t EnrollSamplelndex,

 

const BioAPI_GUI_BITMAP_ARRAY *Bitmaps,

 

const uint8_t *Text,

 

BioAPI_GUI_RESPONSE *Response,

 

int32_t *EnrollSampleIndexToRecapture);

 

8.3.5.1 Описание

 

Данная функция дает возможности приложению требовать того, чтобы событие изменения состояния ГИП, сгенерированное приложением, было привязано к подписке определенного именованного события ГИП. Событие ГИП, переданное данной функции, называется событием ГИП, сгенерированным приложением.

 

При вызове данной функции инфраструктура должна просматривать все существующие именованные подписки на события ГИП, созданные приложением, идентифицированным SubscriberEndpointlRI (пустой указатель - текущее приложение), в поисках подписки, в которой адрес обратного вызова для события изменения состояния ГИП установлен на непустой указатель, а УУИД подписки на событие ГИП тот же, что и GUIEventSubscriptionUuid. При наличии подписки на сопоставление инфраструктура должна произвести обратный вызов обработчику события изменения состояния ГИП, определенного в подписке, задавая входные параметры обратного вызова из входных параметров вызова BioAPI_NotifyGUIStateEvent с теми же наименованиями. После возврата из функции обратного вызова инфраструктура должна скопировать выходные параметры обратного вызова в выходные параметры вызова BioAPI_NotifyGUIStateEvent с теми же наименованиями.

 

Если совпадающих именованных подписок на событие ГИП не существует, то функцией возвращается BioAPI_NO_GUI_EVENT_HANDLER.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.     

8.3.5.2 Параметры

 

SubscriberEndpointlRI (входной, дополнительный) - интернационализированный идентификатор ресурсов, идентифицирующий приложение, создавшее одну или больше подписок на событие ГИП. Параметр должен быть установлен на пустой указатель, если данное приложение является текущим приложением. Приложение может узнать об интернационализированных идентификаторах ресурсов конечной точки подписчика других приложений, использующих инфраструктуру (и создавших одну или больше именованных подписок на событие ГИП для установленного ПБУ) путем вызова BioAPI_QueryGUIEventSubscriptions. Если других приложений, использующих инфраструктуру, не существует, то ИИР конечной точки подписчика установлены на пустые указатели во всех именованных подписках, возвращенных BioAPI_QueryGUIEventSubscriptions.

 

GUIEventSubscriptionUuid (входной) - УУИД, идентифицирующий именованную подписку на событие ГИП. Данный параметр не должен быть установлен на пустой указатель. В некоторых случаях приложение получает данный УУИД из информации, возвращенной предшествующим вызовом BioAPI_QueryGUIEventSubscriptions; в других случаях приложение предоставляет известный УУИД.

 

Другие параметры определяют событие изменения состояния ГИП, сгенерированное приложением.     

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.5.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

     8.3.6 Функция BioAPI_QueryGUIEventSubscriptions (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_QueryGUIEventSubscriptions

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_GUI_EVENT_SUBSCRIPTION**GUIEventSubscriptionList,

 

uint32_t *NumberOfElements);

 

8.3.6.1 Описание

 

Данная функция предоставляет информацию обо всех существующих именованных подписках на события ГИП для установленного ПБУ. Именованной подпиской на событие ГИП называется та подписка, которая создана путем вызова функции BioAPI_SubscribeToGUIEvents, определяющего УУИД подписки на событие ГИП, установленный на непустой указатель. Инфраструктура вызывает обработчики событий, определенные в именованной подписке, для уведомления событий ГИП, сгенерированных ПБУ, и перенаправленных в данную именованную подписку (см. 8.3.7) и для уведомления событий ГИП, сгенерированных приложением (см. 8.3.3, 8.3.4 и 8.3.5), направленных в данную именованную подписку.

 

Путем вызова данной функции приложение может узнать об интернационализированных идентификаторах ресурсов конечной точки подписчика других приложений, использующих инфраструктуру (где эта возможность поддерживается архитектурой реализации инфраструктуры БиоАПИ) и создавших именованные подписки на событие ГИП для установленного ПБУ. Если других приложений, использующих инфраструктуру, не существует, то ИИР конечной точки подписчика установлены на пустой указатель во всех именованных подписках, возвращенных данной функцией.

 

Приложение может использовать информацию, возвращенную вызовом данной функции (ИИР конечной точки подписчика, УУИД подписки на событие ГИП и флаги), в последующих вызовах функции BioAPI_RedirectGUIEvent (для требования того, чтобы определенные последующие события ГИП, сгенерированные ПБУ, перенаправить определенным именованным подпискам) или в последующих вызовах BioAPI_NotifyGUISelectEvent, BioAPI_NotifyGUIStateEvent и т.д. (для требования того, чтобы событие ГИП, сгенерированное приложением, направить определенным именованным подпискам).

 

Данная функция выполняет действия в следующем порядке:

 

a) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_GUI_EVENT_SUBSCRIPTION с числом элементов, равным числу существующих именованных подписок на событие ГИП для установленного ПБУ;

 

b) заполняет массив информацией об именованных подписках; и

 

c) возвращает адрес массива в параметре GUIEventSubscriptionList и число элементов массива в параметре NumberOfElements.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Область памяти, содержащая массив, должна быть освобождена приложением с помощью вызова функции BioAPI_Free (см. 8.7.2), в том случае если он больше не нужен приложению.     

8.3.6.2 Параметры

 

GUIEventSubscriptionList (выходной) - указатель на адрес массива элементов типа BioAPI_GUI_EVENT_SUBSCRIPTION (выделенного инфраструктурой), содержащего информацию об именованной подписке на событие ГИП.

 

NumberOfElements (выходной) - указатель на число элементов массива.     

 

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.6.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

    8.3.7 Функция BioAPI_RedirectGUIEvents (БиоАПИ 2.1)

Данный пункт применяется только при использовании номера версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_RedirectGUIEvents

 

(const uint8_t *SubscriberEndpointIRI,

 

const BioAPI_UUID *GUIEventSubscriptionUuid,

 

BioAPI_HANDLE BSPHandle,

 

BioAPI_BOOL GUISelectEventRedirected,

 

BioAPI_BOOL GUIStateEventRedirected,

 

BioAPI_BOOL GUIProgressEventRedirected);

 

8.3.7.1 Описание

 

Данная функция создает "перенаправитель событий ГИП" для текущего приложения. Перенаправители событий ГИП поддерживаются инфраструктурой во время выполнения (обычно во внутренней таблице) и дают возможность приложению передавать обработку событиями ГИП, сгенерированными ПБУ, либо другому приложению, использующему инфраструктуру (где это поддерживается архитектурой реализации инфраструктуры), либо другому компоненту того же приложения.

 

Приложение, вызывающее данную функцию, должно предоставить ИИР конечной точки подписчика приложения, создавшего именованную подписку на событие ГИП (пустой указатель, если это то же приложение) и УУИД подписки на событие ГИП, как и информацию, определяющую область действия перенаправителя события ГИП (какая присоединенная сессия ПБУ и какой(ие) тип(ы) события(ий) ГИП подвергаются воздействию). Все значения параметров, предоставленные в вызове функции, должны стать частью перенаправителя события ГИП, поддерживаемого инфраструктурой.

 

Каждый вызов данной функции создает новый перенаправитель событий ГИП и не изменяет, а также не заменяет существующий перенаправитель. Перенаправители событий ГИП, определяющие установленный дескриптор присоединенной сессии ПБУ, должны быть автоматически удалены инфраструктурой, когда присоединенная сессия удалена. В любое время приложение может запросить инфраструктуру об удалении существующего перенаправителя с помощью вызова BioAPI_UnredirectGUIEvents, предоставляя те же параметры, что были предоставлены в соответствующем вызове BioAPI_RedirectGUIEvents.

 

Результатом многократного вызова данной функции, в любое время, не должны становиться многократные перенаправители событий выбора ГИП, многократные перенаправители событий изменения состояния ГИП или многократные перенаправители событий выполнения ГИП, созданные для одного и того же дескриптора ПБУ. Это гарантирует определенность в способе перенаправления события для любого входящего события ГИП.

 

Примечание - Предполагается недопустимость двух перенаправителей с одинаковыми параметрами.

 

Если инфраструктура получает вызов данной функции, который успешно создал перенаправитель события ГИП, то она в ответ должна вызвать функцию BioSPI_SubscribeToGUIEvents ПБУ только в том случае, если до данного вызова уже не были созданы подписки на событие ГИП и перенаправители события ГИП. Результатом последующих вызовов BioAPI_RedirectGUIEvents не будут дальнейшие вызовы BioSPI_SubscribeToGUIEvent, только если не были удалены все существующие перенаправители и подписки для ПБУ.

 

Если инфраструктура получает обратный вызов уведомления о событии выбора ГИП, то она должна сначала просмотреть все существующие перенаправители событий ГИП в поисках перенаправителя, где GUISelectEventRedirected имеет значение ВЕРНО и тот же дескриптор ПБУ, что и в событии ГИП. Применяется один из двух абзацев, указанных ниже.

 

Если совпадающих перенаправителей нет, то инфраструктура должна просмотреть все анонимные подписки на событие, созданные приложением, в поисках подписки с адресом обратного вызова, установленным на непустой указатель, для события выбора ГИП и либо дескриптором ПБУ, совпадающим с дескриптором ПБУ события, либо УУИД ПБУ, совпадающим с УУИД ПБУ события. Если совпадающая подписка есть, то инфраструктура должна вызвать в данной подписке обработчик события выбора ГИП, в противном случае возвращать управление из ПБУ первоначальному обратному вызову с выходными параметрами по умолчанию.

 

Если совпадающий перенаправитель есть, то инфраструктура должна просмотреть все существующие именованные подписки на событие ГИП, созданные приложением, идентифицированным ИИР конечной точки подписчика в перенаправителе (пустой указатель - текущее приложение), в поисках подписки, в которой адрес обратного вызова для события выбора ГИП установлен на непустой указатель, УУИД подписки на событие выбора ГИП совпадает с УУИД подписки на событие выбора ГИП в перенаправителе, и УУИД ПБУ совпадает с УУИД ПБУ события. Если совпадающая подписка есть, то инфраструктура должна произвести обратный вызов обработчика события выбора ГИП, определенного в данной подписке, в противном случае возвращать управление из ПБУ первоначальному обратному вызову с выходными параметрами по умолчанию.

 

В обоих случаях после возвращения из обратного вызова приложения инфраструктура должна скопировать выходные параметры обратного вызова приложения в выходные параметры обратного вызова инфраструктуры с теми же наименованиями.

 

Случаи, перечисленные в пяти предыдущих абзацах, одинаково применимы как к событиям изменения состояния ГИП, так и к событиям выполнения ГИП.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.     

8.3.7.2 Параметры

 

SubscriberEndpointlRI (входной, дополнительный) - ИИР, идентифицирующий приложение, создавшее именованную подписку на событие ГИП. Параметр должен быть установлен на пустой указатель, если приложение-подписчик то же, что и текущее приложение.

 

GUIEventSubscriptionUuid (входной) - УУИД, идентифицирующий именованную подписку на событие ГИП. В некоторых случаях приложение получает данный УУИД из информации, возвращенной предшествующим вызовом BioAPI_QueryGUIEventSubscriptions. В других случаях приложение предоставляет известный УУИД.

 

BSPHandle (входной) - дескриптор присоединенной сессии ПБУ, связанный с событием ГИП. Данный вызов не оказывает влияния на события ГИП, относящиеся к другим присоединенным сессиям ПБУ.

 

GUISelectEventRedirected (входной) - флаг, определяющий то, находятся ли события выбора ГИП в области действий перенаправителя. Данный вызов оказывает влияние на события выбора ГИП тогда и только тогда, когда значение этого флага ВЕРНО.

 

GUIStateEventRedirected (входной) - флаг, определяющий то, находятся ли события изменения состояния ГИП в области действий перенаправителя. Данный вызов оказывает влияние на события выбора ГИП тогда и только тогда, когда значение этого флага ВЕРНО.

 

GUIProgressEventRedirected (входной) - флаг, определяющий то, находятся ли события выполнения ГИП в области действий перенаправителя. Данный вызов оказывает влияние на события выбора ГИП тогда и только тогда, когда значение этого флага ВЕРНО.     

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.7.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

 

      8.3.8 Функция BioAPI_SubscribeGUIEvents (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_SubscribeToGUIEvents

 

(const BioAPI_UUID *GUIEventSubscriptionUuid,

 

const BioAPI_UUID *BSPUuid,

 

const BioAPI_HANDLE *BSPHandle,

 

BioAPI_GUI_SELECT_EVENT_HANDLER GUISelectEventHandler,

 

const void *GUISelectEventHandlerCtx,

 

BioAPI_GUI_STATE_EVENT_HANDLER GUIStateEventHandler,

 

const void *GUIStateEventHandlerCtx,

 

BioAPI_GUI_PROGRESS_EVENT_HANDLER GUIProgres EventHandler,

 

const void *GUIProgressEventHandlerCtx);

 

8.3.8.1 Описание

 

Данная функция создает "подписку на событие ГИП" для текущего приложения. Подписки на события ГИП поддерживаются инфраструктурой во время выполнения (обычно как записи внутренней таблицы) и дают возможность приложению получать уведомления о событиях ГИП по определенным установленным адресам обратных вызовов.

 

Приложение должно предоставить адреса обратных вызовов от одного до трех обработчиков событий ГИП (обработчик событий выбора ГИП, обработчик события изменения состояния ГИП, обработчик события выполнения ГИП), как и информацию, определяющую область действия подписки (либо загруженный ПБУ, либо присоединенная сессия ПБУ), таким образом, устанавливая предел на уведомления о событии ГИП, которые инфраструктура направит тем обработчикам событий ГИП. Все значения параметров, предоставленные в вызове данной функции, должны стать частью подписки на событие ГИП, поддерживаемого инфраструктурой.

 

В любом вызове данной функции должен быть предоставлен либо УУИД ПБУ, либо дескриптор ПБУ (но не оба). Если предоставлен дескриптор ПБУ, то подписка ограничена уведомлениями о событии ГИП, которые переносят этот дескриптор ПБУ. Если предоставлен УУИД ПБУ, то подписка ограничена уведомлениями о событии ГИП, которые переносят этот УУИД ПБУ, а также могут или не могут переносить дескриптор ПБУ. (Все уведомления о событии ГИП, которые переносят дескриптор ПБУ, также переносят УУИД ПБУ, но не наоборот).

 

Каждый вызов данной функции создает новую подписку на событие ГИП и не изменяет, а также не заменяет существующую подписку. Подписки на событие ГИП, определяющие дескриптор присоединенной сессии, должны быть автоматически удалены инфраструктурой, когда присоединенная сессия удалена. Подписки на события ГИП, определяющие УУИД ПБУ, должны быть автоматически удалены инфраструктурой, когда ПБУ выгружен. В любое время приложение может запросить инфраструктуру об удалении существующей подписки с помощью вызова BioAPI_UnredirectGUIEvents, предоставляя те же параметры, что были предоставлены в соответствующем вызове BioAPI_RedirectGUIEvents.

 

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

 

Результатом многократного вызова данной функции, в любое время, не должны становиться многократные обработчики событий выбора ГИП, многократные обработчики событий изменения состояния ГИП или многократные обработчики событий выполнения ГИП, созданные для того же дескриптора ПБУ или для того же УУИД ПБУ. Сюда входят и случаи, когда одна подписка определяет УУИД ПБУ, а другая подписка определяет дескриптор присоединенной сессии того же ПБУ. Для любого входящего события ГИП это гарантирует определенность в том, вызов какого обработчика события ГИП (если есть) должен производиться инфраструктурой.

 

Примечание - Предполагается недопустимость двух подписок с одинаковыми параметрами.

 

Если инфраструктура получает вызов данной функции, который успешно создал обработчик события ГИП, то она в ответ должна вызвать функцию BioSPI_SubscribeToGUIEvents ПБУ только в том случае, если до данного вызова уже не были созданы подписки на событие ГИП и перенаправители событий ГИП (см. 8.3.7). Результатом последующих вызовов BioAPI_SubscribeGUIEvents не будут дальнейшие вызовы BioSPI_SubscribeToGUIEvent, только если не были удалены все существующие подписки и перенаправители для данного ПБУ. ПБУ не нужно знать, сколько подписок на события ГИП требуется приложению, определяют ли эти подписки УУИД ПБУ или дескриптор ПБУ, не нужно знать типы, адреса обратных вызовов и контекстные адреса обработчиков событий ГИП, которые определены в данных подписках.

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Примечание - См. также С.7.

           

8.3.8.2 Параметры

 

GUIEventSubscriptionUuid (входной) - идентификатор подписки. Данный параметр должен быть установлен на пустой указатель (типичный случай) для анонимной подписки на событие ГИП (касающейся получения событий ГИП, созданных ПБУ и не перенаправленных). Данный параметр должен быть установлен на непустой указатель для названной подписки (касающейся получения уведомлений о перенаправленном событии ГИП и уведомления о событии ГИП, управляемом приложением).

 

BSPUuid (входной, дополнительный) - УУИД, определяющий ПБУ, которым ограничена подписка.

 

BSPHandle (входной, дополнительный) - дескриптор присоединенной сессии ПБУ, которой ограничена подписка. Данный параметр должен быть установлен на пустой указатель, если GUIEventSubscriptionUuid установлен на непустой указатель (названная подписка не может определять дескриптор присоединенной сессии).

 

GUISelectEventHandler (входной, дополнительный) - адрес обратного вызова функции приложения, которая должна получать от инфраструктуры уведомления о событии выбора ГИП.

 

GUISelectEventHandlerCtx (входной) - контекстный адрес, который должен возвращаться инфраструктурой приложению при каждом обратном вызове обработчика события выбора ГИП.

 

GUIStateEventHandler (входной, дополнительный) - адрес обратного вызова функции приложения, которая должна получать от инфраструктуры уведомления о событии изменения состояния ГИП.

 

GUIStateEventHandlerCtx (входной) - контекстный адрес, который должен возвращаться инфраструктурой приложению при каждом обратном вызове обработчика события изменения состояния ГИП.

 

GUIProgressEventHandler (входной, дополнительный) - адрес обратного вызова функции приложения, которая должна получать от инфраструктуры уведомления о событии выполнения ГИП.

 

GUIProgressEventHandlerCtx (входной) - контекстный адрес, который должен возвращаться инфраструктурой приложению при каждом обратном вызове обработчика события выполнения ГИП.

 

Должен быть определен только один из параметров BSPUuid и BSPHandle. Должен быть определен по крайней мере один из параметров GUISelectEventHandler, GUIStateEventHandler и GUIProgressEventHandler. Контекстный адрес должен быть определен только в том случае, если определен соответствующий адрес обратного вызова. Не определенные параметры должны быть установлены на пустой указатель.     

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.8.4 Ошибки:

 

BioAPIERR_INVALID POINTER

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

 

      8.3.9 Функция BioAPI_UnredirectGUIEvents (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_UnredirectGUIEvents

 

(const uint8_t *SubscriberEndpointIRI,

 

const BioAPI_UUID *GUIEventSubscriptionUuid,

 

BioAPI_HANDLE BSPHandle,

 

BioAPI_BOOL GUISelectEventRedirected,

 

BioAPI_BOOL GUIStateEventRedirected,

 

BioAPI_BOOL GUIProgressEventRedirected);

 

8.3.9.1 Описание

 

Данная функция удаляет перенаправитель события ГИП, созданный посредством вызова BioAPI_RedirectGUIEvents. Определение именно этого удаленного перенаправителя в точности совпадает с параметрами вызова.

 

Примечание - Вызов данной функции не удалит перенаправитель, даже если существует лишь один перенаправитель, если значения параметров вызова полностью не совпадают со значениями параметров вызова BioAPI_RedirectGUIEvents, создавшего перенаправитель. Приложение должно помнить значения данных параметров.

 

Если инфраструктуре поступает вызов данной функции, который успешно удаляет перенаправитель события ГИП, то инфраструктура должна в ответ вызвать функцию BioSPI_UnsubscribeFromGUIEvents ПБУ только в том случае, если больше не существует подписок на события ГИП и перенаправителей событий ГИП, созданных для данного ПБУ.

 

Обычно у приложений нет необходимости вызывать данную функцию, потому что все перенаправители событий ГИП для указанной присоединенной сессии ПБУ автоматически удаляются инфраструктурой, когда удаляется присоединенная сессия. Данная функция может быть использована в том случае, если приложению необходимо модифицировать перенаправителей текущего события ГИП без удаления присоединенной сессии.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Примечание - См. также С.7.

           

8.3.9.2 Параметры

 

Параметры данной функции имеют тот же смысл, что и параметры функции BioAPI_RedirectGUIEvents с теми же наименованиями, и используются инфраструктурой для идентификации существующего перенаправителя события ГИП, который должен быть удален.     

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.9.4 Ошибки:

 

BioAPIERR_INVALID_POINTER

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

 

      8.3.10 Функция BioAPI_UnsubscribeFromGUIEvents (БиоАПИ 2.1)

Данный пункт применяется только при использовании версии БиоАПИ 2.1.

 

 

 

 

 

BioAPI_RETURN BioAPI BioAPI_UnsubscribeFromGUIEvents

 

(const BioAPI_UUID *GUIEventSubscriptionUuid,

 

const BioAPI_UUID *BSPUuid,

 

const BioAPI_HANDLE *BSPHandle,

 

BioAPI_GUI_SELECT_EVENT_HANDLER GUISelectEventHandler,

 

const void *GUISelectEventHandlerCtx,

 

BioAPI_GUI_STATE_EVENT_HANDLER GUIStateEventHandler,

 

const void *GUIStateEventHandlerCtx,

 

BioAPI_GUI_PROGRESS_EVENT_HANDLER

 

GUIProgressEventHandler

 

const void *GUIProgressEventHandlerCtx);

 

8.3.10.1 Описание

 

Данная функция удаляет подписку на событие ГИП, созданную посредством вызова BioAPI_SubscribeToGUIEvents. Удаляется именно та подписка, определение которой точно соответствует параметрам вызова.

 

Примечание - Вызов данной функции не удалит подписку, даже если существует лишь одна подписка, если значения параметров вызова полностью не совпадают со значениями параметров вызова BioAPI_SubscribeToGUIEvents, создавшего подписку. Приложение должно помнить значения данных параметров.

 

Если инфраструктуре поступает вызов данной функции, который успешно удаляет подписку на событие ГИП, то инфраструктура должна в ответ вызвать функцию BioSPI_UnsubscribeFromGUIEvents ПБУ только в том случае, если больше не существует подписок на события ГИП и перенаправителей (см. 8.3.7) событий ГИП, созданных для данного ПБУ.

 

Обычно у приложений нет необходимости вызывать данную функцию, потому что все подписки на события ГИП для указанной присоединенной сессии ПБУ автоматически удаляются инфраструктурой, когда удаляется присоединенная сессия. Данная функция может быть использована в том случае, если приложению необходимо модифицировать подписку на текущее событие ГИП без удаления присоединенной сессии.

 

Пример - Данная функция может быть применена в следующих случаях: (1) приложение применяет управляемый приложением ГИП как при регистрации, так и при верификации/идентификации, но с разными обработчиками событий ГИП; (2) приложение использует ГИП, управляемый ПБУ, при регистрации, но управляемый приложением ГИП, при верификации/идентификации, или наоборот.

 

Данная функция может быть вызвана только в том случае (для установленного УУИД ПБУ), если был произведен хотя бы один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого еще не был произведен соответствующий вызов BioAPI_BSPUnload.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

Примечание - См. также С.7.

           

8.3.10.2 Параметры

 

Параметры данной функции имеют тот же смысл, что и параметры функции BioAPI_SubscribeGUIEvents с теми же наименованиями, и используются инфраструктурой для идентификации существующей подписки на событие ГИП, которая должна быть удалена.     

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

 

Значение BioAPI_RETURN указывает на то, что функция была выполнена успешно, или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.10.4 Ошибки:

 

BioAPIERR_INVALID_POINTER

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

   

 

   

 

      8.3.11 Функция BioAPI_EbableEventNotifications (БиоАПИ 2.1)

Данный пункт применяется только при использовании БиоАПИ версии 2.1.

 

 

 

BioAPI_RETURN BioAPI BioAPI_EnableEventNotifications

 

(const BioAPI_UUID *BSPUuid,

 

BioAPI_EVENT_MASK Events);

 

8.3.11.1 Описание

 

Функция разрешает события, определенные маской событий и поступающие от ПБУ, идентифицированного УУИД ПБУ, и деактивирует все остальные события, поступающие от этого же ПБУ.

 

События разрешены или деактивированы только для приложения, вызывающего данную функцию. Если существуют другие приложения, использующие инфраструктуру БиоАПИ или указанный ПБУ одновременно, то на такие приложения вызов функции BioAPI_EnableEventNotification влияния не окажет.

 

Данная функция может быть вызвана в любое время после BioAPI_Init или BioAPI_InitEndpoint, даже до загрузки указанного ПБУ. Маска событий, созданная вызовом данной функции, остается действующей до тех пор, пока эта функция не будет снова вызвана для того же ПБУ.

 

Данная функция должна вызываться только в том случае, если был произведен хотя бы один вызов BioAPI_Init или BioAPI_InitEndpoint, для которого еще не был произведен соответствующий вызов BioAPI_Terminate.

 

Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.

 

8.3.11.2 Параметры

 

BSPUuid (входной) - УУИД ПБУ.

 

Events (входной) - маска, обозначающая разрешенные события.     

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_ОK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.     

8.3.11.4 Ошибки

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.     

           

8.3.3-8.3.11 (Введены дополнительно, Изм. N 1).

 

      8.4 Биометрические функции

 

 

      8.4.1 Функция BioAPI_Capture

     

 

 

BioAPI_RETURN BioAPI BioAPI_Capture

 

(BioAPI_HANDLE BSPHandle,

 

BioAPI_BIR_PURPOSEPurpose,

 

BioAPI_BIR_SUBTYPESubtype,

 

const BioAPI_BIR_BIOMETRIC_DATA_FORMAT *OutputFormat,

 

BioAPI_BIR_HANDLE *CapturedBIR,

 

int32_t Timeout,

 

BioAPI_BIR_HANDLE *AuditData);

 

8.4.1.1 Описание

 

Данная функция получает образцы для указанного назначения, ПБУ возвращает ЗБИ "промежуточного" типа в случае, если после этого необходимо вызывать функцию BioAPI_Process, или "обработанную" ЗБИ в противном случае. Назначение записано в заголовке CapturedBIR. Если AuditData является ненулевым указателем, может быть возвращен ЗБИ "исходного" типа. Функция возвращает дескрипторы к любым собранным данным, и все локальные операции могут быть выполнены с помощью дескрипторов. Если приложению необходимо получить данные для их сохранения в базе данных ЗБИ или пересылки на сервер, оно может извлечь их путем вызова функции BioAPI_GetBIRFromHandle.

 

По умолчанию за предоставление связанного с получением данных интерфейса пользователя отвечает ПБУ. Приложение может запросить управление видом и поведением ГИП путем предоставления указателя обратного вызова ГИП в BioAPI_SetGUICallbacks. Дополнительное описание особенностей интерфейса пользователя приведено в приложении С, раздел С.7.

 

Использование устройств получения биометрических данных происходит последовательно. Если два или более биометрических приложения одновременно запрашивают датчик, "опоздавшие" будут ждать завершения операции или истечения времени ожидания. Этот порядок установлен во всех функциях получения данных. За сериализацию отвечает ПБУ. В свою очередь ПБУ реализует сериализацию, используя признак "занято" (BioAPI_UNIT_IN_USE) или устанавливая очередность.

 

Дескриптор ЗБИ, возвращаемый функцией, должен быть освобожден приложением путем вызова функции BioAPI_FreeBIRHandle, если приложение больше не использует его.

 

8.4.1.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

Purpose (входной) - значение, указывающее назначение получаемых биометрических данных.

 

SubTYPE_(входной/необязательный) - определяет тип полученных данных (например, левый или правый глаз). Значение BioAPI_NO_SUBTYPE_AVAILABLE (0x00) показывает, что ПБУ должен выбрать подтип данных.

 

Примечание - Не все ПБУ поддерживают получение специфических данных. Действительный подтип должен быть указан в заголовке возвращаемого CapturedBIR.

 

OutputFormat (входной/необязательный) - определяет формат ББД, который будет использоваться при возвращении CapturedBIR в том случае, если ПБУ поддерживает более одного формата. Пустой указатель означает, что ПБУ должен выбрать формат.

 

CapturedBIR (выходной) - дескриптор ЗБИ, содержащей полученные данные. Эти данные являются либо ЗБИ "промежуточного" типа (которая может использоваться исключительно функциями BioAPI_Process, BioAPI_CreateTemplate или BioAPI_ProcessWithAuxData в зависимости от назначения), либо "обработанной" ЗБИ (которая может непосредственно использоваться функциями BioAPI_VerifyMatch или BioAPI_IdentifyMatch в зависимости от назначения).

 

Timeout (входной) - целое число, определяющее значение времени ожидания (в миллисекундах) для операции. Если время ожидания истекло, функция возвращает ошибку без предоставления результатов операции. Данное значение может быть любым положительным числом. Значение минус 1 означает, что будет использоваться значение времени ожидания, заданное по умолчанию ПБУ.

 

AuditData (выходной/необязательный) - дескриптор ЗБИ, содержащей исходные биометрические данные. Эти данные могут использоваться для предоставления биометрических данных личности. Нулевой указатель на входе указывает, что контрольные данные не будут собраны. Не все ПБУ поддерживают сбор контрольных данных. ПБУ может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE, чтобы указать, что AuditData не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что контрольные данные недоступны.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.4.1.4 Ошибки

 

 

BioAPIERR_USER_CANCELLED

BioAPIERR_UNABLE_TO_CAPTURE

BioAPIERR_TOO_MANY_HANDLES

BioAPIERR_TIMEOUT_EXPIRED

BioAPIERR_PURPOSE_NOT_SUPPORTED

BioAPIERR_UNSUPPORTED_FORMAT

BioAPIERR_UNIT_IN_USE

 

Данные об обработке ошибок БиоАПИ приведены в разделе 11.

 

 

      8.4.2 Функция BioAPI_CreateTemplate

 

 

BioAPI_RETURN BioAPI BioAPI_CreateTemplate

 

(BioAPI_HANDLE BSPHandle,

 

const BioAPI_INPUT_BIR *CapturedBIR,

 

const BioAPI_INPUT _BIR *ReferenceTemplate,

 

const BioAPI_BIR BIOMETRIC_DATA_FORMAT *OutputFormat

 

BioAPI_BIR_HANDLE *NewTemplate,

 

const BioAPI_DATA *Payload,

 

BioAPI_UUID *TemplateUUID);

 

8.4.2.1 Описание

 

Данная функция принимает ЗБИ, содержащую биометрические данные в промежуточной форме, для создания нового шаблона регистрации. Новая ЗБИ создается с помощью CapturedBIR. Также функция может дополнительно выполнить адаптацию на основе существующего ReferenceTemplate (контрольного шаблона). Старый ReferenceTemplate остается неизменным.

 

Дополнительный входной ReferenceTemplate предоставляется для использования при создании NewTemplate (нового шаблона), если ПБУ поддерживает эту возможность. Использование ПБУ входного ReferenceTemplate для создания выходного NewTemplate необязательно.

 

Если ПБУ поддерживает внутреннюю или управляемую ПБУ базу данных ЗБИ (например, смарт-карту или механизм идентификации), то он может дополнительно возвратить УУИД, присвоенный вновь созданному ReferenceTemplate, сохраненному в управляемой ПБУ базе данных ЗБИ. Значение УУИД должно быть таким же, как и значение, включенное в заголовок ЗБИ, если оно там присутствует.

 

Дескриптор ЗБИ, возвращаемый приложением, должен быть освобожден приложением BioAPI_GetBIRFromHandle, если он больше не использует его. ЗБИ может быть восстановлена путем вызова функции BioAPI_GetBIRFromHandle, которая освобождает дескриптор.

 

8.4.2.2 Параметры

 

BSPHandle (входной) - дескриптор присоединенного ПБУ.

 

CapturedBIR (входной) - полученная ЗБИ или ее дескриптор.

 

ReferenceTemplate (входной/необязательный) - необязательно существующий шаблон, который должен быть адаптирован, или его ключ в базе данных ЗБИ, или его дескриптор.

 

OutputFormat (входной/необязательный) - определяет, какой формат ББД будет использоваться при возвращении NewTemplate, если ПБУ поддерживает более одного формата. Пустой указатель означает, что формат должен быть выбран ПБУ.

 

NewTemplate (выходной) - дескриптор вновь созданного шаблона, который получен из параметра CapturedBIR с использованием (необязательно) ReferenceTemplate.

 

Payload (входной/необязательный) - указатель на данные, которые будут сохранены ПБУ. Данный параметр игнорируется, если указатель пустой.

 

Примечание 1 - Не все ПБУ поддерживают сохранение полезной информации.

 

Примечание 2 - Дополнительно о полезной информации указано в приложении А, подпункт А.4.6.2.6, и приложении С, раздел С.5.

 

TemplateUUID (выходной/необязательный) - указатель на 16-байтовую область памяти, в которую дополнительно может быть возвращен присвоенный ПБУ УУИД, связанный с ReferenceTemplate (сохраненным в управляемой ПБУ базе данных ЗБИ). Если не требуется возвращения УУИД, указатель должен быть пустым.

 

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

 

Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.

 

8.4.2.4 Ошибки