WinBioUnlockUnit-Funktion (winbio.h)
Gibt die Sitzungssperre für die angegebene biometrische Einheit frei.
Syntax
HRESULT WinBioUnlockUnit(
[in] WINBIO_SESSION_HANDLE SessionHandle,
[in] WINBIO_UNIT_ID UnitId
);
Parameter
[in] SessionHandle
Ein WINBIO_SESSION_HANDLE Wert, der eine offene biometrische Sitzung identifiziert. Öffnen Sie ein synchrones Sitzungshandle, indem Sie WinBioOpenSession aufrufen. Öffnen Sie ein asynchrones Sitzungshandle, indem Sie WinBioAsyncOpenSession aufrufen.
[in] UnitId
Ein WINBIO_UNIT_ID Wert, der die zu entsperrende biometrische Einheit angibt.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Wenn die Funktion fehlschlägt, gibt sie einen HRESULT-Wert zurück, 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 |
---|---|
|
Das Sitzungshandle ist ungültig. |
|
Der UnitId-Parameter darf keine Null enthalten. |
|
Die durch den UnitId-Parameter angegebene biometrische Einheit ist derzeit nicht durch die Sitzung gesperrt. |
Hinweise
Das Aufrufen von WinBioUnlockUnit gibt automatisch alle Sperren frei, die von der Sitzung gehalten werden. Diese Funktion schlägt fehl, wenn die von der UnitId angegebene biometrische Einheit zuvor nicht durch Aufrufen der WinBioLockUnit-Funktion gesperrt wurde.
Um WinBioUnlockUnit synchron zu verwenden, rufen Sie die Funktion mit einem Sitzungshandle auf, das durch Aufrufen von WinBioOpenSession erstellt wurde. Die Funktion blockiert, bis der Vorgang abgeschlossen ist oder ein Fehler auftritt.
Um WinBioUnlockUnit asynchron zu verwenden, rufen Sie die Funktion mit einem Sitzungshandle auf, das durch Aufrufen von WinBioAsyncOpenSession erstellt wurde. Das Framework weist eine WINBIO_ASYNC_RESULT-Struktur zu und verwendet sie, um Informationen zum Erfolg oder Fehler des Vorgangs zurückzugeben. Die WINBIO_ASYNC_RESULT Struktur wird an den Anwendungsrückruf oder an die Anwendungsmeldungswarteschlange zurückgegeben, abhängig vom Wert, den Sie im NotificationMethod-Parameter der WinBioAsyncOpenSession-Funktion festgelegt haben:
- Wenn Sie sich dafür entscheiden, Vervollständigungsbenachrichtigungen mithilfe eines Rückrufs zu erhalten, müssen Sie eine PWINBIO_ASYNC_COMPLETION_CALLBACK-Funktion implementieren und den NotificationMethod-Parameter auf WINBIO_ASYNC_NOTIFY_CALLBACK festlegen.
- Wenn Sie sich dafür entscheiden, Vervollständigungsbenachrichtigungen mithilfe der Anwendungsnachrichtenwarteschlange zu erhalten, müssen Sie den NotificationMethod-Parameter auf WINBIO_ASYNC_NOTIFY_MESSAGE festlegen. Das Framework gibt einen WINBIO_ASYNC_RESULT-Zeiger auf das LPARAM-Feld der Fensternachricht zurück.
Beispiele
Die folgende Funktion ruft WinBioLockUnit auf, um die biometrische Einheit zu sperren, bevor WinBioIdentify aufgerufen wird, um den Benutzer zu identifizieren. WinBioUnlockUnit wird aufgerufen, um die biometrische Union zu entsperren, bevor die geöffnete Sitzung geschlossen wird. Verknüpfen Sie die statische Bibliothek Winbio.lib, und fügen Sie die folgenden Headerdateien ein:
- Windows.h
- Stdio.h
- Conio.h
- Winbio.h
HRESULT LockUnlock( )
{
// Declare variables.
HRESULT hr = S_OK;
WINBIO_IDENTITY identity = {0};
WINBIO_SESSION_HANDLE sessionHandle = NULL;
WINBIO_UNIT_ID unitId = 0;
WINBIO_REJECT_DETAIL rejectDetail = 0;
WINBIO_BIOMETRIC_SUBTYPE subFactor = WINBIO_SUBTYPE_NO_INFORMATION;
BOOL lockAcquired = FALSE;
// Connect to the system pool.
hr = WinBioOpenSession(
WINBIO_TYPE_FINGERPRINT, // Service provider
WINBIO_POOL_SYSTEM, // Pool type
WINBIO_FLAG_DEFAULT, // Configuration and access
NULL, // Array of biometric unit IDs
0, // Count of biometric unit IDs
NULL, // Database ID
&sessionHandle // [out] Session handle
);
if (FAILED(hr))
{
wprintf_s(L"\n WinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
goto e_Exit;
}
// Lock the session. The Biometric unit ID (1) is hard coded in
// this example.
hr = WinBioLockUnit( sessionHandle, 1 );
if (FAILED(hr))
{
wprintf_s(L"\n WinBioLockUnit failed. hr = 0x%x\n", hr);
goto e_Exit;
}
wprintf_s(L"\n Biometric unit #1 is locked.\n");
lockAcquired = TRUE;
// Locate the biometric sensor and retrieve a WINBIO_IDENTITY object.
// You must swipe your finger on the sensor.
wprintf_s(L"\n Calling WinBioIdentify - Swipe finger on sensor...\n");
hr = WinBioIdentify(
sessionHandle,
&unitId,
&identity,
&subFactor,
&rejectDetail
);
wprintf_s(L"\n Swipe processed - Unit ID: %d\n", unitId);
if (FAILED(hr))
{
wprintf_s(L"\n WinBioIdentify failed. hr = 0x%x\n", hr);
goto e_Exit;
}
e_Exit:
// Unlock the biometric unit if it is locked.
if (lockAcquired == TRUE)
{
hr = WinBioUnlockUnit( sessionHandle, 1 );
if (FAILED(hr))
{
wprintf_s(L"\n WinBioUnlockUnit failed. hr = 0x%x\n", hr);
}
wprintf_s(L"\n Biometric unit #1 is unlocked.\n");
lockAcquired = FALSE;
}
if (sessionHandle != NULL)
{
WinBioCloseSession(sessionHandle);
sessionHandle = NULL;
}
wprintf_s(L"\n Press any key to exit...");
_getch();
return hr;
}
Anforderungen
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 (einschließlich Winbio.h) |
Bibliothek | Winbio.lib |
DLL | Winbio.dll |