共用方式為


WinBioEnumServiceProviders 函式 (winbio.h)

檢索已安裝生物辨識服務提供者的資訊。 從 Windows 10 版本 1607 開始,此功能可用於行動映像檔。

語法

HRESULT WinBioEnumServiceProviders(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_BSP_SCHEMA     **BspSchemaArray,
  [out] SIZE_T                *BspCount
);

參數

[in] Factor

一個由WINBIO_BIOMETRIC_TYPE旗組成的位元遮罩,指定要列舉的生物特徵單位類型。 目前只支援 WINBIO_TYPE_FINGERPRINT

[out] BspSchemaArray

位址為一個變數,該變數接收到包含每個可用服務提供者資訊的 WINBIO_BSP_SCHEMA 結構陣列指標。 若函式未成功,指標將設為 NULL。 如果函式成功,你必須將指標傳給 WinBioFree ,以釋放內部分配給陣列的記憶體。

[out] BspCount

指標指向一個指定 BspSchemaArray 參數所指向結構數量的值。

返回值

如果函式成功,則會傳回S_OK。 如果函式失敗,它會傳回指出錯誤的 HRESULT 值。 可能的值包括但不限於下表中的值。 如需常見錯誤碼的清單,請參閱 常見的 HRESULT 值

回傳碼 Description
E_INVALIDARG
Factor 參數中包含的位元遮罩包含一個或多個無效型態位元。
E_OUTOFMEMORY
記憶體不足以完成請求。
E_POINTER
BspSchemaArrayBspCount 的參數不能是 NULL。

備註

目前因子參數只支援WINBIO_TYPE_FINGERPRINT

當你完成回傳到 BspSchemaArray 參數的結構後,必須呼叫 WinBioFree 來釋放內部分配給陣列的記憶體。

Factor 位元遮罩中所有因子位元皆為不支援的生物特徵類型,函式回傳 S_OK,但 BspSchemaArray 參數指向的值為 NULL,BspCount 參數為零。 雖然詢問未支援的生物特徵因素並非錯誤,但查詢結果將是空集合。

範例

以下程式碼範例呼叫 WinBioEnumServiceProviders 來枚舉已安裝的服務提供者。 範例中也包含一個功能 DisplayGuid,用來顯示提供者 ID。 連結至 Winbio.lib 靜態程式庫,並包含下列標頭檔:

  • Windows.h
  • 標準.h
  • Conio.h
  • Winbio.h
HRESULT EnumSvcProviders( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_BSP_SCHEMA bspSchemaArray = NULL;
    SIZE_T bspCount = 0;
    SIZE_T index = 0;

    // Enumerate the service providers.
    hr = WinBioEnumServiceProviders( 
            WINBIO_TYPE_FINGERPRINT,    // Provider to enumerate
            &bspSchemaArray,            // Provider schema array
            &bspCount );                // Number of schemas returned
    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioEnumServiceProviders failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display the schema information.
    wprintf_s(L"\nService providers: \n");
    for (index = 0; index < bspCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n", 
                 index, 
                 bspSchemaArray[index].BiometricFactor );
        
        wprintf_s(L"\tBspId: ");
        DisplayGuid(&bspSchemaArray[index].BspId);
        wprintf_s(L"\n");

        wprintf_s(L"\tDescription: %ws\n", 
                 bspSchemaArray[index].Description);
        wprintf_s(L"\tVendor: %ws\n", 
                 bspSchemaArray[index].Vendor );
        wprintf_s(L"\tVersion: %d.%d\n", 
                 bspSchemaArray[index].Version.MajorVersion, 
                 bspSchemaArray[index].Version.MinorVersion);

        wprintf_s(L"\n");
    } 

e_Exit:
    if (bspSchemaArray != NULL)
    {
        WinBioFree(bspSchemaArray);
        bspSchemaArray = 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]
        );
}


需求

Requirement 價值觀
最低支援的用戶端 Windows 7 [僅限桌面應用程式]
支援的最低伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平臺 窗戶
Header winbio.h(包括Winbio.h)
Library Winbio.lib 網站
DLL Winbio.dll

另請參閱

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumenrollments