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를 호출하여 시스템의 생체 인식 데이터베이스를 열거합니다. 이 예제에는 데이터베이스 ID를 표시하는 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 |
헤더 | winbio.h(Winbio.h 포함) |
라이브러리 | Winbio.lib |
DLL | Winbio.dll |