Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Libera el bloqueo de sesión en la unidad biométrica especificada.
Syntax
HRESULT WinBioUnlockUnit(
[in] WINBIO_SESSION_HANDLE SessionHandle,
[in] WINBIO_UNIT_ID UnitId
);
Parámetros
[in] SessionHandle
Valor WINBIO_SESSION_HANDLE que identifica una sesión biométrica abierta. Abra un identificador de sesión sincrónico llamando a WinBioOpenSession. Abra un identificador de sesión asincrónico llamando a WinBioAsyncOpenSession.
[in] UnitId
Valor WINBIO_UNIT_ID que especifica la unidad biométrica que se va a desbloquear.
Valor devuelto
Si la función se ejecuta correctamente, devuelve S_OK. Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.
| Código de retorno | Description |
|---|---|
|
El identificador de sesión no es válido. |
|
El parámetro UnitId no puede contener cero. |
|
La unidad biométrica especificada por el parámetro UnitId no está bloqueada actualmente por la sesión. |
Observaciones
Al llamar a WinBioUnlockUnit , se liberan automáticamente los bloqueos mantenidos por la sesión. Esta función producirá un error si la unidad biométrica especificada por unitId no se ha bloqueado previamente llamando a la función WinBioLockUnit .
Para usar WinBioUnlockUnit de forma sincrónica, llame a la función con un identificador de sesión creado mediante una llamada a WinBioOpenSession. La función se bloquea hasta que se completa la operación o se produce un error.
Para usar WinBioUnlockUnit de forma asincrónica, llame a la función con un identificador de sesión creado mediante una llamada a WinBioAsyncOpenSession. El marco asigna una estructura de WINBIO_ASYNC_RESULT y la usa para devolver información sobre el éxito o el error de la operación. La estructura WINBIO_ASYNC_RESULT se devuelve a la devolución de llamada de la aplicación o a la cola de mensajes de la aplicación, en función del valor establecido en el parámetro NotificationMethod de la función WinBioAsyncOpenSession :
- Si decide recibir avisos de finalización mediante una devolución de llamada, debe implementar una función PWINBIO_ASYNC_COMPLETION_CALLBACK y establecer el parámetro NotificationMethod en WINBIO_ASYNC_NOTIFY_CALLBACK.
- Si decide recibir avisos de finalización mediante la cola de mensajes de la aplicación, debe establecer el parámetro NotificationMethod en WINBIO_ASYNC_NOTIFY_MESSAGE. El marco devuelve un puntero WINBIO_ASYNC_RESULT al campo LPARAM del mensaje de ventana.
Examples
La función siguiente llama a WinBioLockUnit para bloquear la unidad biométrica antes de llamar a WinBioIdentify para identificar al usuario. Llama a WinBioUnlockUnit para desbloquear la unión biométrica antes de cerrar la sesión abierta. Vincule a la biblioteca estática Winbio.lib e incluya los siguientes archivos de encabezado:
- 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;
}
Requisitos
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
| Servidor mínimo admitido | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
| de la plataforma de destino de | Windows |
| Header | winbio.h (incluya Winbio.h) |
| Library | Winbio.lib |
| DLL de |
Winbio.dll |