共用方式為


WinBioAsyncOpenFramework 函式 (winbio.h)

開啟生物特徵辨識架構的控制碼。 從 Windows 10 組建 1607 開始,此函式可用來搭配行動映射使用。 您可以使用這個控制碼以非同步方式列舉生物特徵辨識單位、資料庫和服務提供者,以及在生物特徵辨識單位附加至電腦或移除時接收非同步通知。

語法

HRESULT WinBioAsyncOpenFramework(
  [in]           WINBIO_ASYNC_NOTIFICATION_METHOD  NotificationMethod,
  [in, optional] HWND                              TargetWindow,
  [in, optional] UINT                              MessageCode,
  [in, optional] PWINBIO_ASYNC_COMPLETION_CALLBACK CallbackRoutine,
  [in, optional] PVOID                             UserData,
  [in]           BOOL                              AsynchronousOpen,
  [out]          WINBIO_FRAMEWORK_HANDLE           *FrameworkHandle
);

參數

[in] NotificationMethod

指定此架構會話中非同步作業的完成通知如何傳遞至用戶端應用程式。 這必須是下列其中一個值。

意義
WINBIO_ASYNC_NOTIFY_CALLBACK
架構會叫用應用程式所定義的回呼函式。
WINBIO_ASYNC_NOTIFY_MESSAGE
架構會將視窗訊息張貼至應用程式的訊息佇列。

[in, optional] TargetWindow

將接收完成通知的視窗控制碼。 除非 NotificationMethod 參數設定為 WINBIO_ASYNC_NOTIFY_MESSAGE,否則會忽略此值。

[in, optional] MessageCode

架構必須傳送的視窗訊息碼,以表示完成通知。 除非 NotificationMethod 參數設定為 WINBIO_ASYNC_NOTIFY_MESSAGE,否則會忽略此值。 值必須介於 WM_APP (0x8000) 0xBFFF 範圍內。

Windows 生物特徵辨識架構會將訊息的 LPARAM 值設定為包含作業結果之 WINBIO_ASYNC_RESULT 結構的位址。 您必須呼叫 WinBioFree ,以在您使用完結構之後釋出結構。

[in, optional] CallbackRoutine

要針對完成通知叫用的回呼常式位址。 除非 NotificationMethod 參數設定為 WINBIO_ASYNC_NOTIFY_CALLBACK,否則會忽略此值。

[in, optional] UserData

呼叫端提供的緩衝區位址。 架構或生物特徵辨識單位不會修改緩衝區。 它會在 WINBIO_ASYNC_RESULT 結構中傳回。 您的應用程式可以使用資料來協助判斷在收到完成通知時要執行的動作,或維護所要求作業的其他資訊。

[in] AsynchronousOpen

指定是否要封鎖,直到架構會話開啟為止。 指定 FALSE 會導致進程封鎖。 指定 TRUE 會導致會話以非同步方式開啟。

如果您指定 FALSE 以同步開啟架構會話,此函式會在 HRESULT 傳回值中直接將成功或失敗傳回給呼叫端。 如果已成功開啟會話,則應用程式收到的第一個非同步完成事件將會用於架構開啟之後所要求的非同步作業。

如果您指定 TRUE 以非同步方式開啟架構會話,收到的第一個非同步完成通知將會用於開啟架構。 如果NotificationMethod參數設定為WINBIO_ASYNC_NOTIFY_CALLBACK,作業結果就會傳遞至CallbackRoutine參數所指定回呼函式中的WINBIO_ASYNC_RESULT結構。 如果NotificationMethod參數設定為WINBIO_ASYNC_NOTIFY_MESSAGE,作業結果就會傳遞至視窗訊息的LPARAM欄位所指向的WINBIO_ASYNC_RESULT結構。

[out] FrameworkHandle

如果函式不成功,此參數會是 Null

如果會話以同步方式開啟且成功,此參數將包含會話控制碼的指標。

如果您指定以非同步方式開啟會話,這個方法會立即傳回,會話控制碼會是 Null,而且您必須檢查 WINBIO_ASYNC_RESULT 結構,以判斷會話是否已成功開啟。

傳回值

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

傳回碼 描述
E_OUTOFMEMORY
沒有足夠的記憶體可供建立架構會話。
E_INVALIDARG
如果您將通知方法設定為 WINBIO_ASYNC_NOTIFY_MESSAGETargetWindow 參數不能是 NullHWND_BROADCAST而且 MessageCode 參數不能是零 (0) 。
E_POINTER
必須設定 FrameworkHandle 參數和 AsynchronousOpen 參數。

如果您將通知方法設定為 WINBIO_ASYNC_NOTIFY_CALLBACK,您也必須在 CallbackRoutine 參數中指定回呼函式的位址。

備註

WinBioAsyncOpenFramework函式所傳回的架構控制碼可用來產生下列函式的非同步完成通知:

SyncOpen參數只會決定開啟的作業是否會封鎖。 此參數不會影響使用會話控制碼之後續呼叫的完成行為。

如果您將 SyncOpen 參數設定為 TRUE,此函式會在執行引數的初始驗證後立即傳回 S_OK 。 超過該點之後偵測到的任何錯誤,都會使用 NotificationMethod 參數所指定的方法來向呼叫端回報。 也就是說,成功的傳回值只會指出 WinBioAsyncOpenFramework 參數正常,而不是開啟的作業成功。 若要判斷開啟作業是否成功,您必須檢查 WINBIO_ASYNC_RESULT 結構。

規格需求

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

另請參閱

WinBioAsyncOpenSession