共用方式為


winBioControlUnit 函式 (winbio.h)

可讓呼叫端在生物特徵辨識單位上執行廠商定義的控制作業。 從 Windows 10 組建 1607 開始,此函式可用來搭配行動映射使用。 此函式可供存取不需要提高許可權的擴充廠商作業。 如果需要訪問許可權,請呼叫 WinBioControlUnitPrivileged 函式

語法

HRESULT WinBioControlUnit(
  [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
);

參數

[in] SessionHandle

識別開放式生物特徵辨識會話 的WINBIO_SESSION_HANDLE 值。 呼叫 WinBioOpenSession 以開啟同步會話句柄。 呼叫 WinBioAsyncOpenSession 來開啟異步會話句柄。

[in] UnitId

識別生物特徵辨識單位 的WINBIO_UNIT_ID 值。 此值必須對應至先前在 WinBioLockUnit 函式中使用的單位識別碼。

[in] Component

WINBIO_COMPONENT值,指定應該執行作業之生物特徵辨識單位內的元件。 這可以是下列其中一個值。

意義
WINBIO_COMPONENT_SENSOR
將命令傳送至感測器配接器。
WINBIO_COMPONENT_ENGINE
將命令傳送至引擎配接器。
WINBIO_COMPONENT_STORAGE
將命令傳送至記憶體配接器。

[in] ControlCode

由 UnitId 參數所指定的生物特徵辨識單位所辨識的廠商定義程式代碼,以及 Component 參數所指定的配接

SendBuffer

緩衝區的位址,其中包含要傳送至 Component 參數所指定之配接器的控件資訊。 緩衝區的格式和內容是廠商定義的。

[in] SendBufferSize

SendBuffer 參數所指定的緩衝區大小,以位元組為單位。

ReceiveBuffer

接收 Component 參數所指定之配接器所傳送資訊的緩衝區位址。 緩衝區的格式和內容是廠商定義的。

[in] ReceiveBufferSize

ReceiveBuffer 參數所指定的緩衝區大小,以位元組為單位。

ReceiveDataSize

SIZE_T值的指標,其中包含 ReceiveBuffer 參數所指定之緩衝區的數據大小,以位元組為單位。

[out, optional] OperationStatus

包含廠商定義狀態代碼的整數指標,指定控制作業的結果。

傳回值

如果函式成功,則會傳回S_OK。 如果函式失敗,它會傳回 指出錯誤的 HRESULT 值。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼 Description
E_HANDLE
會話句柄無效。
E_INVALIDARG
無法辨識 ControlCode 參數中指定的值。
E_POINTER
SendBufferReceiveBufferReceiveDataSizeOperationStatus 參數不可為 NULL
WINBIO_E_INVALID_CONTROL_CODE
無法辨識 ControlCode 參數中指定的值。
WINBIO_E_LOCK_VIOLATION
UnitId 參數指定的生物特徵辨識單位必須先鎖定,才能執行任何控制作業。

備註

您必須先呼叫 WinBioLockUnit ,才能呼叫 WinBioControlUnitWinBioLockUnit 函式會建立鎖定的區域,在其中可以安全地執行廠商定義的作業。

建立外掛程式的廠商必須決定哪些擴充作業具有特殊許可權,且可供所有用戶端使用。 若要執行特殊許可權作業,用戶端應用程式必須呼叫 WinBioControlUnitPrivileged 函式 。 Windows 生物特徵辨識架構只允許具有適當訪問許可權的用戶端呼叫 WinBioControlUnitPrivileged

若要以同步方式使用 WinBioControlUnit ,請使用呼叫 WinBioOpenSession 所建立的會話句柄來呼叫函式。 函式會封鎖作業完成或發生錯誤為止。

若要以異步方式使用 WinBioControlUnit ,請使用呼叫 WinBioAsyncOpenSession 所建立的會話句柄來呼叫函式。 架構會配置 WINBIO_ASYNC_RESULT 結構,並用它來傳回作業成功或失敗的相關信息。 WINBIO_ASYNC_RESULT 結構會根據您在 WinBioAsyncOpenSession 函式的 NotificationMethod 參數中設定的值,傳回至應用程式回呼或應用程式消息佇列。

  • 如果您選擇使用回呼接收完成通知,則必須實作 PWINBIO_ASYNC_COMPLETION_CALLBACK 函式,並將 NotificationMethod 參數設定為 WINBIO_ASYNC_NOTIFY_CALLBACK
  • 如果您選擇使用應用程式消息佇列接收完成通知,則必須將 NotificationMethod 參數設定為 WINBIO_ASYNC_NOTIFY_MESSAGE。 架構會傳回視窗訊息之 LPARAM 欄位的WINBIO_ASYNC_RESULT指標。
若要防止記憶體流失,您必須呼叫 WinBioFree ,以在完成使用之後釋放 WINBIO_ASYNC_RESULT 結構。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 winbio.h (包含Winbio.h)
程式庫 Winbio.lib
Dll Winbio.dll

另請參閱

WinBioControlUnitPrivileged

WinBioLockUnit