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 |