Condividi tramite


Funzione WinBioEnumServiceProviders (winbio.h)

Recupera informazioni sui provider di servizi biometrici installati. A partire da Windows 10, build 1607, questa funzione è disponibile per l'uso con un'immagine per dispositivi mobili.

Sintassi

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

Parametri

[in] Factor

Maschera di bit di flag WINBIO_BIOMETRIC_TYPE che specifica i tipi di unità biometrica da enumerare. Attualmente è supportato solo WINBIO_TYPE_FINGERPRINT .

[out] BspSchemaArray

Indirizzo di una variabile che riceve un puntatore a una matrice di strutture WINBIO_BSP_SCHEMA che contengono informazioni su ognuno dei provider di servizi disponibili. Se la funzione non riesce, il puntatore viene impostato su NULL. Se la funzione ha esito positivo, è necessario passare il puntatore a WinBioFree per rilasciare la memoria allocata internamente per la matrice.

[out] BspCount

Puntatore a un valore che specifica il numero di strutture a cui punta il parametro BspSchemaArray .

Valore restituito

Se la funzione ha esito positivo, restituisce S_OK. Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.

Codice restituito Descrizione
E_INVALIDARG
La maschera di bit contenuta nel parametro Factor contiene uno o più bit di tipo non validi.
E_OUTOFMEMORY
Memoria insufficiente per completare la richiesta.
E_POINTER
I parametri BspSchemaArray e BspCount non possono essere NULL.

Commenti

Solo WINBIO_TYPE_FINGERPRINT è attualmente supportato nel parametro Factor .

Al termine dell'uso delle strutture restituite al parametro BspSchemaArray , devi chiamare WinBioFree per rilasciare la memoria allocata internamente per la matrice.

Se tutti i bit di fattore nella maschera di bit factor fanno riferimento a tipi biometrici non supportati, la funzione restituisce S_OK ma il valore a cui punta il parametro BspSchemaArray sarà NULL e il parametro BspCount conterrà zero. Anche se non si tratta di un errore per chiedere informazioni sui fattori biometrici non supportati, il risultato della query sarà un set vuoto.

Esempio

L'esempio di codice seguente chiama WinBioEnumServiceProviders per enumerare i provider di servizi installati. L'esempio include anche una funzione, DisplayGuid, per visualizzare l'ID del provider. Collegarsi alla libreria statica Winbio.lib e includere i file di intestazione seguenti:

  • Windows.h
  • Stdio.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]
        );
}


Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbio.h (include Winbio.h)
Libreria Winbio.lib
DLL Winbio.dll

Vedi anche

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments