WinBioEnumBiometricUnits-Funktion (winbio.h)
Listet alle angefügten biometrischen Einheiten auf, die dem Eingabetyp entsprechen.
Syntax
HRESULT WinBioEnumBiometricUnits(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[out] WINBIO_UNIT_SCHEMA **UnitSchemaArray,
[out] SIZE_T *UnitCount
);
Parameter
[in] Factor
Eine Bitmaske mit WINBIO_BIOMETRIC_TYPE Flags, die die zu enumerierten biometrischen Einheitentypen angibt. Derzeit wird nur WINBIO_TYPE_FINGERPRINT unterstützt.
[out] UnitSchemaArray
Adresse einer Variablen, die einen Zeiger auf ein Array von WINBIO_UNIT_SCHEMA Strukturen empfängt, die Informationen zu jeder aufgelisteten biometrischen Einheit enthalten. Wenn die Funktion nicht erfolgreich ist, wird der Zeiger auf NULL festgelegt. Wenn die Funktion erfolgreich ist, müssen Sie den Zeiger an WinBioFree übergeben, um den intern für das Array zugeordneten Arbeitsspeicher freizugeben.
[out] UnitCount
Zeiger auf einen Wert, der die Anzahl der Strukturen angibt, auf die der UnitSchemaArray-Parameter verweist.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Wenn die Funktion fehlschlägt, wird ein HRESULT-Wert zurückgegeben, der den Fehler angibt. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.
Rückgabecode | Beschreibung |
---|---|
|
Die im Factor-Parameter enthaltene Bitmaske enthält ein oder mehrere ungültige Typbits. |
|
Es war nicht genügend Arbeitsspeicher vorhanden, um die Anforderung abzuschließen. |
|
Die Parameter UnitSchemaArray und UnitCount können nicht NULL sein. |
|
Die aktuelle Verwaltungsrichtlinie verbietet die Verwendung der Windows Biometric Framework-API. |
Hinweise
Im Factor-Parameter wird derzeit nur WINBIO_TYPE_FINGERPRINT unterstützt.
Wenn Informationen zu mehreren installierten biometrischen Einheiten im Array von Strukturen zurückgegeben werden, auf die der UnitSchemaArray-Parameter verweist, werden die Einheiten nicht garantiert in einer bestimmten Reihenfolge angezeigt.
Nachdem Sie mit der Verwendung der an den UnitSchemaArray-Parameter zurückgegebenen Strukturen fertig sind, müssen Sie WinBioFree aufrufen, um den intern für das Array zugeordneten Arbeitsspeicher freizugeben.
Wenn alle Faktorbits in der Factor-Bitmaske auf nicht unterstützte biometrische Typen verweisen, gibt die Funktion S_OK aber der Wert, auf den der UnitSchemaArray-Parameter verweist, NULL ist, und der UnitCount-Parameter enthält null. Obwohl es kein Fehler ist, sich nach nicht unterstützten biometrischen Faktoren zu erkundigen, ist das Ergebnis der Abfrage ein leerer Satz.
Beispiele
Die folgende Funktion ruft WinBioEnumBiometricUnits auf, um die installierten biometrischen Einheiten aufzulisten. Verknüpfen Sie die statische Winbio.lib-Bibliothek, und schließen Sie die folgenden Headerdateien ein:
- 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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winbio.h (winbio.h einschließen) |
Bibliothek | Winbio.lib |
DLL | Winbio.dll |