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 |
---|---|
|
La maschera di bit contenuta nel parametro Factor contiene uno o più bit di tipo non validi. |
|
Memoria insufficiente per completare la richiesta. |
|
I parametri UnitSchemaArray e UnitCount non possono essere NULL. |
|
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 |