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 パラメーターに含まれるビットマスクには、無効な型ビットが 1 つ以上含まれています。 |
|
要求を完了するためのメモリが不足していました。 |
|
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 を含む) |
Library | Winbio.lib |
[DLL] | Winbio.dll |