Función WinBioControlUnitPrivileged (winbio.h)

Permite al autor de la llamada realizar operaciones de control definidas por el proveedor con privilegios en una unidad biométrica. A partir de Windows 10, compilación 1607, esta función está disponible para su uso con una imagen móvil. El cliente debe llamar a esta función para realizar operaciones de proveedor extendidas que requieran derechos de acceso elevados. Si no se requieren privilegios, el cliente puede llamar a la función WinBioControlUnit .

Sintaxis

HRESULT WinBioControlUnitPrivileged(
  [in]            WINBIO_SESSION_HANDLE SessionHandle,
  [in]            WINBIO_UNIT_ID        UnitId,
  [in]            WINBIO_COMPONENT      Component,
  [in]            ULONG                 ControlCode,
                  PUCHAR                SendBuffer,
  [in]            SIZE_T                SendBufferSize,
                  PUCHAR                ReceiveBuffer,
  [in]            SIZE_T                ReceiveBufferSize,
                  SIZE_T                *ReceiveDataSize,
  [out, optional] ULONG                 *OperationStatus
);

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 identifica la unidad biométrica. Este valor debe corresponder al identificador de unidad usado anteriormente en la función WinBioLockUnit .

[in] Component

Valor de WINBIO_COMPONENT que especifica el componente dentro de la unidad biométrica que debe realizar la operación. Puede ser uno de los valores siguientes.

Valor Significado
WINBIO_COMPONENT_SENSOR
Envíe el comando al adaptador del sensor.
WINBIO_COMPONENT_ENGINE
Envíe el comando al adaptador del motor.
WINBIO_COMPONENT_STORAGE
Envíe el comando al adaptador de almacenamiento.

[in] ControlCode

Código definido por el proveedor reconocido por la unidad biométrica especificada por el parámetro UnitId y el adaptador especificado por el parámetro Component .

SendBuffer

Dirección del búfer que contiene la información de control que se enviará al adaptador especificado por el parámetro Component . El formato y el contenido del búfer se definen por el proveedor.

[in] SendBufferSize

Tamaño, en bytes, del búfer especificado por el parámetro SendBuffer .

ReceiveBuffer

Dirección del búfer que recibe información enviada por el adaptador especificado por el parámetro Component . El formato y el contenido del búfer se definen por el proveedor.

[in] ReceiveBufferSize

Tamaño, en bytes, del búfer especificado por el parámetro ReceiveBuffer .

ReceiveDataSize

Puntero a un valor de SIZE_T que contiene el tamaño, en bytes, de los datos escritos en el búfer especificado por el parámetro ReceiveBuffer .

[out, optional] OperationStatus

Puntero a un entero que contiene un código de estado definido por el proveedor que especifica el resultado de la operación de control.

Valor devuelto

Si la función se realiza 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 los que se indican en la tabla siguiente, entre otros. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código devuelto Descripción
E_HANDLE
El identificador de sesión no es válido.
E_INVALIDARG
No se reconoce el valor especificado en el parámetro ControlCode .
E_POINTER
Los parámetros SendBuffer, ReceiveBuffer, ReceiveDataSize, OperationStatus no pueden ser NULL.
E_ACCESSDENIED
El autor de la llamada no tiene permiso para realizar la operación o la sesión no se abrió mediante WINBIO_FLAG_MAINTENANCE.
E_INVALIDARG
No se reconoce el valor especificado en el parámetro ControlCode .
WINBIO_E_LOCK_VIOLATION
La unidad biométrica especificada por el parámetro UnitId debe bloquearse antes de que se puedan realizar operaciones de control.

Comentarios

Los proveedores que crean complementos deben decidir qué operaciones extendidas tienen privilegios y cuáles están disponibles para todos los clientes. Para realizar una operación con privilegios, la aplicación cliente debe llamar a la función WinBioControlUnitPrivileged . Windows Biometric Framework solo permite a los clientes que tengan los derechos de acceso adecuados para llamar a esta función. Para realizar una operación que no requiera privilegios, el cliente debe llamar a la función WinBioControlUnit .

Debes llamar a WinBioLockUnit antes de llamar a WinBioControlUnitPrivileged. La función WinBioLockUnit crea una región bloqueada en la que se pueden realizar operaciones definidas por el proveedor de forma segura.

Para llamar correctamente a esta función, se debe haber abierto el identificador de sesión especificando WINBIO_FLAG_MAINTENANCE. Solo los administradores y las cuentas del sistema local tienen los privilegios necesarios.

Para usar WinBioControlUnitPrivileged sincrónicamente, 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 WinBioControlUnitPrivileged de forma asincrónica, llame a la función con un identificador de sesión creado llamando 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, según el 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 de PWINBIO_ASYNC_COMPLETION_CALLBACK y establecer el parámetro NotificationMethod en WINBIO_ASYNC_NOTIFY_CALLBACK.
  • Si decide recibir notificaciones de finalización mediante la cola de mensajes de la aplicación, debe establecer el parámetro NotificationMethoden WINBIO_ASYNC_NOTIFY_MESSAGE. El marco devuelve un puntero WINBIO_ASYNC_RESULT al campo LPARAM del mensaje de ventana.
Para evitar pérdidas de memoria, debes llamar a WinBioFree para liberar la estructura WINBIO_ASYNC_RESULT después de haber terminado de usarlo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbio.h (incluye Winbio.h)
Library Winbio.lib
Archivo DLL Winbio.dll

Consulte también

WinBioControlUnit

WinBioLockUnit