WinBioAsyncEnumServiceProviders function (winbio.h)

Asynchronously returns information about installed biometric service providers. Starting with Windows 10, build 1607, this function is available to use with a mobile image. For a synchronous version of this function, see WinBioEnumServiceProviders.


HRESULT WinBioAsyncEnumServiceProviders(
  [in] WINBIO_FRAMEWORK_HANDLE FrameworkHandle,


[in] FrameworkHandle

Handle to the framework session opened by calling WinBioAsyncOpenFramework.

[in] Factor

A bitmask of WINBIO_BIOMETRIC_TYPE flags that specifies the biometric service provider types to be enumerated. For Windows 8, only WINBIO_TYPE_FINGERPRINT is supported.

Return value

The function returns an HRESULT indicating success or failure. Note that success indicates only that the function's arguments were valid. Failures encountered during the execution of the operation will be returned asynchronously to a WINBIO_ASYNC_RESULT structure using the notification method specified in the call to WinBioAsyncOpenFramework.

Return code Description
You must set the FrameworkHandle argument.
The bitmask contained in the Factor parameter contains one or more an invalid type bits.
There was insufficient memory to complete the request.
The FrameworkHandle argument must represent an asynchronous framework session.


The WinBioAsyncEnumServiceProviders function uses a handle to the framework session opened by calling WinBioAsyncOpenFramework. The framework allocates a WINBIO_ASYNC_RESULT structure and uses it to return information about operation success or failure. If the enumeration operation is successful, the framework returns an array of schemas that include information about each enumerated provider. If the operation is unsuccessful, the framework uses the WINBIO_ASYNC_RESULT structure to return error information. The structure is returned to the application callback or to the application message queue, depending on the value you set in the NotificationMethod parameter of the WinBioAsyncOpenFramework function.

  • If you choose to receive completion notices by using a callback, you must implement a PWINBIO_ASYNC_COMPLETION_CALLBACK function and set the NotificationMethod parameter to WINBIO_ASYNC_NOTIFY_CALLBACK.
  • If you choose to receive completion notices by using the application message queue, you must set the NotificationMethod parameter to WINBIO_ASYNC_NOTIFY_MESSAGE. The framework returns a WINBIO_ASYNC_RESULT pointer to the LPARAM field of the window message.
The array of schemas is returned in an EnumServiceProviders structure nested inside the WINBIO_ASYNC_RESULT structure. You must call WinBioFree to release the WINBIO_ASYNC_RESULT structure after you have finished using it.

Calling WinBioAsyncEnumServiceProviders causes a single notification to be sent to the client application.


Minimum supported client Windows 8 [desktop apps only]
Minimum supported server Windows Server 2012 [desktop apps only]
Target Platform Windows
Header winbio.h (include Winbio.h)
Library Winbio.lib
DLL Winbio.dll

See also