Condividi tramite


Funzione WinBioEnumBiometricUnits (winbio.h)

Enumera tutte le unità biometriche associate che corrispondono al tipo di input.

Sintassi

HRESULT WinBioEnumBiometricUnits(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_UNIT_SCHEMA    **UnitSchemaArray,
  [out] SIZE_T                *UnitCount
);

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] UnitSchemaArray

Indirizzo di una variabile che riceve un puntatore a una matrice di strutture WINBIO_UNIT_SCHEMA che contengono informazioni su ogni unità biometrica enumerata. 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] UnitCount

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

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 UnitSchemaArray e UnitCount non possono essere NULL.
WINBIO_E_DISABLED
I criteri amministrativi correnti impediscono l'uso dell'API Di Windows Biometric Framework.

Commenti

Solo WINBIO_TYPE_FINGERPRINT è attualmente supportato nel parametro Factor .

Se le informazioni su più unità biometriche installate vengono restituite nella matrice di strutture a cui punta il parametro UnitSchemaArray , non è garantito che le unità siano in un ordine specifico.

Al termine dell'uso delle strutture restituite al parametro UnitSchemaArray , 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 UnitSchemaArray sarà NULL e il parametro UnitCount 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

La funzione seguente chiama WinBioEnumBiometricUnits per enumerare le unità biometriche installate. Collegarsi alla libreria statica Winbio.lib e includere i file di intestazione seguenti:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumerateSensors( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_UNIT_SCHEMA unitSchema = NULL;
    SIZE_T unitCount = 0;
    SIZE_T index = 0;

    // Enumerate the installed biometric units.
    hr = WinBioEnumBiometricUnits( 
            WINBIO_TYPE_FINGERPRINT,        // Type of biometric unit
            &unitSchema,                    // Array of unit schemas
            &unitCount );                   // Count of unit schemas

    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display information for each installed biometric unit.
    wprintf_s(L"\nSensors: \n");
    for (index = 0; index < unitCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tUnit ID: %d\n", 
                 index, 
                 unitSchema[index].UnitId );
        wprintf_s(L"\tDevice instance ID: %s\n", 
                 unitSchema[index].DeviceInstanceId );
        wprintf_s(L"\tPool type: %d\n", 
                 unitSchema[index].PoolType );
        wprintf_s(L"\tBiometric factor: %d\n", 
                 unitSchema[index].BiometricFactor );
        wprintf_s(L"\tSensor subtype: %d\n", 
                 unitSchema[index].SensorSubType );
        wprintf_s(L"\tSensor capabilities: 0x%08x\n", 
                 unitSchema[index].Capabilities );
        wprintf_s(L"\tDescription: %s\n", 
                 unitSchema[index].Description );
        wprintf_s(L"\tManufacturer: %s\n", 
                 unitSchema[index].Manufacturer );
        wprintf_s(L"\tModel: %s\n", 
                 unitSchema[index].Model );
        wprintf_s(L"\tSerial no: %s\n", 
                 unitSchema[index].SerialNumber );
        wprintf_s(L"\tFirmware version: [%d.%d]\n", 
                 unitSchema[index].FirmwareVersion.MajorVersion, 
                 unitSchema[index].FirmwareVersion.MinorVersion);
    }


e_Exit:
    if (unitSchema != NULL)
    {
        WinBioFree(unitSchema);
        unitSchema = NULL;
    }

    wprintf_s(L"\nPress any key to exit...");
    _getch();

    return hr;
}


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

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders