共用方式為


WinBioControlUnitPrivileged 函式 (winbio.h)

允許呼叫端在生物特徵辨識單位上執行特殊許可權廠商定義的控制作業。 從 Windows 10 組建 1607 開始,此函式可用來搭配行動映射使用。 客戶端必須呼叫此函式,才能執行需要提高訪問許可權的擴充廠商作業。 如果不需要任何許可權,用戶端可以呼叫 WinBioControlUnit 函式。

語法

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
);

參數

[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
SendBuffer、ReceiveBufferReceiveDataSizeOperationStatus 參數不能是 NULL
E_ACCESSDENIED
呼叫端沒有執行作業的許可權,或使用 WINBIO_FLAG_MAINTENANCE開啟會話。
E_INVALIDARG
無法辨識 ControlCode 參數中指定的值。
WINBIO_E_LOCK_VIOLATION
UnitId 參數指定的生物特徵辨識單位必須先鎖定,才能執行任何控制作業。

備註

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

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

若要成功呼叫此函式,必須透過指定 WINBIO_FLAG_MAINTENANCE來開啟會話句柄。 只有系統管理員和本機系統帳戶具有必要的許可權。

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

若要以異步 方式使用 WinBioControlUnitPrivileged ,請使用呼叫 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

另請參閱

WinBioControlUnit

WinBioLockUnit