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 |
---|---|
|
Le masque de bits contenu dans le paramètre Factor contient un ou plusieurs bits de type non valide. |
|
La mémoire était insuffisante pour terminer la demande. |
|
Les paramètres UnitSchemaArray et UnitCount ne peuvent pas être NULL. |
|
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 |