Partager via


Fonction WinBioEnumBiometricUnits (winbio.h)

Énumère toutes les unités biométriques jointes qui correspondent au type d’entrée.

Syntaxe

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

Paramètres

[in] Factor

Masque de bits de WINBIO_BIOMETRIC_TYPE indicateurs qui spécifie les types d’unités biométriques à énumérer. Seule WINBIO_TYPE_FINGERPRINT est actuellement prise en charge.

[out] UnitSchemaArray

Adresse d’une variable qui reçoit un pointeur vers un tableau de structures WINBIO_UNIT_SCHEMA qui contiennent des informations sur chaque unité biométrique énumérée. Si la fonction ne réussit pas, le pointeur est défini sur NULL. Si la fonction réussit, vous devez passer le pointeur vers WinBioFree pour libérer la mémoire allouée en interne pour le tableau.

[out] UnitCount

Pointeur vers une valeur qui spécifie le nombre de structures pointées par le paramètre UnitSchemaArray .

Valeur retournée

Si la fonction réussit, elle retourne S_OK. Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles sont notamment celles figurant dans le tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code de retour Description
E_INVALIDARG
Le masque de bits contenu dans le paramètre Factor contient un ou plusieurs bits de type non valide.
E_OUTOFMEMORY
La mémoire était insuffisante pour terminer la demande.
E_POINTER
Les paramètres UnitSchemaArray et UnitCount ne peuvent pas être NULL.
WINBIO_E_DISABLED
La stratégie d’administration actuelle interdit l’utilisation de l’API Du framework biométrique Windows.

Remarques

Seul WINBIO_TYPE_FINGERPRINT est actuellement pris en charge dans le paramètre Factor .

Si des informations sur plusieurs unités biométriques installées sont retournées dans le tableau de structures pointées par le paramètre UnitSchemaArray , il n’est pas garanti que les unités soient dans un ordre particulier.

Une fois que vous avez terminé d’utiliser les structures retournées au paramètre UnitSchemaArray , vous devez appeler WinBioFree pour libérer la mémoire allouée en interne pour le tableau.

Si tous les bits de facteur dans le masque de bits factor font référence à des types biométriques non pris en charge, la fonction retourne S_OK mais la valeur pointée par le paramètre UnitSchemaArray sera NULL et le paramètre UnitCount contiendra zéro. Bien qu’il ne s’agisse pas d’une erreur d’interrogation sur les facteurs biométriques non pris en charge, le résultat de la requête sera un ensemble vide.

Exemples

La fonction suivante appelle WinBioEnumBiometricUnits pour énumérer les unités biométriques installées. Créez un lien vers la bibliothèque statique Winbio.lib et incluez les fichiers d’en-tête suivants :

  • 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;
}


Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbio.h (inclure Winbio.h)
Bibliothèque Winbio.lib
DLL Winbio.dll

Voir aussi

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders