次の方法で共有


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 値」を参照してください。

リターン コード 説明
E_INVALIDARG
Factor パラメーターに含まれるビットマスクには、無効な型ビットが 1 つ以上含まれています。
E_OUTOFMEMORY
要求を完了するためのメモリが不足していました。
E_POINTER
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

こちらもご覧ください

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders