Функция WinBioEnumDatabases (winbio.h)
Перечисляет все зарегистрированные базы данных, соответствующие указанному типу.
Синтаксис
HRESULT WinBioEnumDatabases(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[out] WINBIO_STORAGE_SCHEMA **StorageSchemaArray,
[out] SIZE_T *StorageCount
);
Параметры
[in] Factor
Битовая маска флагов WINBIO_BIOMETRIC_TYPE, указывающая перечисляемые типы биометрических единиц. В настоящее время поддерживается только WINBIO_TYPE_FINGERPRINT .
[out] StorageSchemaArray
Адрес переменной, получающей указатель на массив WINBIO_STORAGE_SCHEMA структур, содержащих сведения о каждой базе данных. Если функция не выполняется, для указателя устанавливается значение NULL. Если функция выполняется успешно, необходимо передать указатель на WinBioFree , чтобы освободить память, выделенную внутренним образом для массива.
[out] StorageCount
Указатель на значение, указывающее количество структур, на которые указывает параметр StorageSchemaArray .
Возвращаемое значение
Если функция завершается успешно, она возвращает S_OK. Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Код возврата | Описание |
---|---|
|
Битовая маска, содержащаяся в параметре Factor, содержит один или несколько битов недопустимого типа. |
|
Недостаточно памяти для выполнения запроса. |
|
Параметры StorageSchemaArray и StorageCount не могут иметь значение NULL. |
Комментарии
В настоящее время в параметре Factor поддерживаются только WINBIO_TYPE_FINGERPRINT.
Если сведения о нескольких базах данных возвращаются в массиве структур, на которые указывает параметр StorageSchemaArray , то базы данных не гарантируются в определенном порядке.
После завершения использования структур, возвращаемых параметру StorageSchemaArray , необходимо вызвать WinBioFree , чтобы освободить память, выделенную внутренним образом для массива.
Примеры
В следующем примере кода вызывается WinBioEnumDatabases для перечисления биометрических баз данных в системе. Пример также включает функцию DisplayGuid для отображения идентификатора базы данных. Ссылка на статическую библиотеку Winbio.lib и включение следующих файлов заголовков:
- Windows.h
- Stdio.h
- Conio.h
- Winbio.h
HRESULT EnumDatabases( )
{
// Declare variables.
HRESULT hr = S_OK;
PWINBIO_STORAGE_SCHEMA storageSchemaArray = NULL;
SIZE_T storageCount = 0;
SIZE_T index = 0;
// Enumerate the databases.
hr = WinBioEnumDatabases(
WINBIO_TYPE_FINGERPRINT, // Type of biometric unit
&storageSchemaArray, // Array of database schemas
&storageCount ); // Number of database schemas
if (FAILED(hr))
{
wprintf_s(L"\nWinBioEnumDatabases failed. hr = 0x%x\n", hr);
goto e_Exit;
}
// Display information for each database.
wprintf_s(L"\nDatabases:\n");
for (index = 0; index < storageCount; ++index)
{
wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n",
index,
storageSchemaArray[index].BiometricFactor );
wprintf_s(L"\tDatabase ID: ");
DisplayGuid(&storageSchemaArray[index].DatabaseId);
wprintf_s(L"\n");
wprintf_s(L"\tData format: ");
DisplayGuid(&storageSchemaArray[index].DataFormat);
wprintf_s(L"\n");
wprintf_s(L"\tAttributes: 0x%08x\n",
storageSchemaArray[index].Attributes);
wprintf_s(L"\tFile path: %ws\n",
storageSchemaArray[index].FilePath );
wprintf_s(L"\tCnx string: %ws\n",
storageSchemaArray[index].ConnectionString );
wprintf_s(L"\n");
}
e_Exit:
if (storageSchemaArray != NULL)
{
WinBioFree(storageSchemaArray);
storageSchemaArray = NULL;
}
wprintf_s(L"\nPress any key to exit...");
_getch();
return hr;
}
//------------------------------------------------------------------------
// The following function displays a GUID to the console window.
//
VOID DisplayGuid( __in PWINBIO_UUID Guid )
{
wprintf_s(
L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
Guid->Data1,
Guid->Data2,
Guid->Data3,
Guid->Data4[0],
Guid->Data4[1],
Guid->Data4[2],
Guid->Data4[3],
Guid->Data4[4],
Guid->Data4[5],
Guid->Data4[6],
Guid->Data4[7]
);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | winbio.h (включая Winbio.h) |
Библиотека | Winbio.lib |
DLL | Winbio.dll |