Функция WinBioEnumServiceProviders (winbio.h)
Извлекает сведения об установленных поставщиках биометрических услуг. Начиная с Windows 10 сборки 1607 эта функция доступна для использования с мобильным образом.
Синтаксис
HRESULT WinBioEnumServiceProviders(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[out] WINBIO_BSP_SCHEMA **BspSchemaArray,
[out] SIZE_T *BspCount
);
Параметры
[in] Factor
Битовая маска флагов WINBIO_BIOMETRIC_TYPE, указывающая перечисляемые типы биометрических единиц. В настоящее время поддерживается только WINBIO_TYPE_FINGERPRINT .
[out] BspSchemaArray
Адрес переменной, получающей указатель на массив WINBIO_BSP_SCHEMA структур, содержащих сведения о каждом из доступных поставщиков услуг. Если функция не выполняется, для указателя устанавливается значение NULL. Если функция выполняется успешно, необходимо передать указатель на WinBioFree , чтобы освободить память, выделенную внутренним образом для массива.
[out] BspCount
Указатель на значение, указывающее количество структур, на которые указывает параметр BspSchemaArray .
Возвращаемое значение
Если функция завершается успешно, она возвращает S_OK. Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Код возврата | Описание |
---|---|
|
Битовая маска, содержащаяся в параметре Factor, содержит один или несколько битов недопустимого типа. |
|
Недостаточно памяти для выполнения запроса. |
|
Параметры BspSchemaArray и BspCount не могут иметь значение NULL. |
Комментарии
В настоящее время в параметре Factor поддерживаются только WINBIO_TYPE_FINGERPRINT.
После завершения использования структур, возвращаемых параметру BspSchemaArray , необходимо вызвать WinBioFree , чтобы освободить память, выделенную внутренним образом для массива.
Если все биты коэффициентов в битовой маске factor ссылаются на неподдерживаемые биометрические типы, функция возвращает S_OK но значение, указанное параметром BspSchemaArray , будет иметь значение NULL , а параметр BspCount будет содержать ноль. Хотя запрос о неподдерживаемых биометрических факторах не является ошибкой, результатом запроса будет пустой набор.
Примеры
В следующем примере кода вызывается WinBioEnumServiceProviders для перечисления установленных поставщиков служб. Пример также включает функцию DisplayGuid для отображения идентификатора поставщика. Ссылка на статическую библиотеку Winbio.lib и включение следующих файлов заголовков:
- Windows.h
- Stdio.h
- Conio.h
- Winbio.h
HRESULT EnumSvcProviders( )
{
// Declare variables.
HRESULT hr = S_OK;
PWINBIO_BSP_SCHEMA bspSchemaArray = NULL;
SIZE_T bspCount = 0;
SIZE_T index = 0;
// Enumerate the service providers.
hr = WinBioEnumServiceProviders(
WINBIO_TYPE_FINGERPRINT, // Provider to enumerate
&bspSchemaArray, // Provider schema array
&bspCount ); // Number of schemas returned
if (FAILED(hr))
{
wprintf_s(L"\n WinBioEnumServiceProviders failed. hr = 0x%x\n", hr);
goto e_Exit;
}
// Display the schema information.
wprintf_s(L"\nService providers: \n");
for (index = 0; index < bspCount; ++index)
{
wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n",
index,
bspSchemaArray[index].BiometricFactor );
wprintf_s(L"\tBspId: ");
DisplayGuid(&bspSchemaArray[index].BspId);
wprintf_s(L"\n");
wprintf_s(L"\tDescription: %ws\n",
bspSchemaArray[index].Description);
wprintf_s(L"\tVendor: %ws\n",
bspSchemaArray[index].Vendor );
wprintf_s(L"\tVersion: %d.%d\n",
bspSchemaArray[index].Version.MajorVersion,
bspSchemaArray[index].Version.MinorVersion);
wprintf_s(L"\n");
}
e_Exit:
if (bspSchemaArray != NULL)
{
WinBioFree(bspSchemaArray);
bspSchemaArray = NULL;
}
wprintf_s(L"\nPress any key to exit...");
_getch();
return hr;
}
//------------------------------------------------------------------------
// The following function displays a GUID to the console window.
//
VOID DisplayGuid( __in PWINBIO_UUID Guid )
{
wprintf_s(
L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
Guid->Data1,
Guid->Data2,
Guid->Data3,
Guid->Data4[0],
Guid->Data4[1],
Guid->Data4[2],
Guid->Data4[3],
Guid->Data4[4],
Guid->Data4[5],
Guid->Data4[6],
Guid->Data4[7]
);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | winbio.h (включая Winbio.h) |
Библиотека | Winbio.lib |
DLL | Winbio.dll |