Функция WinBioFree (winbio.h)
Освобождает память, выделенную для клиентского приложения, путем более раннего вызова функции API Windows Biometric Framework. Начиная с Windows 10 сборки 1607 эта функция доступна для использования с мобильным образом.
Синтаксис
HRESULT WinBioFree(
[in] PVOID Address
);
Параметры
[in] Address
Адрес удаляемого блока памяти.
Возвращаемое значение
Если функция выполняется успешно, она возвращает S_OK. Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Код возврата | Описание |
---|---|
|
Параметр Address не может иметь значение NULL. |
Комментарии
Несколько функций в API Биометрической платформы Windows выделяют память для клиентского приложения и передают адрес этой памяти клиенту. Чтобы предотвратить утечку памяти, необходимо вызвать WinBioFree , чтобы удалить блок после завершения работы с содержащейся в нем информацией. Память удаляется путем передачи ее адреса в WinBioFree. Адрес можно найти, отменив ссылку на указатель, заданный соответствующим параметром в каждой из следующих функций.
Функция | Параметр | Тип выделенного блока |
---|---|---|
WinBioCaptureSample | Образец | Структура |
WinBioEnumBiometricUnits | UnitSchemaArray | Массив структур |
WinBioEnumDatabases | StorageSchemaArray | Массив структур |
WinBioEnumEnumEnrollments | SubFactorArray | массив целых чисел |
WinBioEnumServiceProviders | BspSchemaArray | Массив структур |
EventCallBack | Событие | Структура |
CaptureCallback | Образец | Структура |
Примеры
Следующая функция вызывает WinBioEnumBiometricUnits для перечисления установленных биометрических датчиков и WinBioFree для освобождения памяти, созданной WinBioEnumBiometricUnits. Ссылка на статическую библиотеку Winbio.lib и включение следующих файлов заголовков:
- Windows.h
- Stdio.h
- Conio.h
- Winbio.h
HRESULT EnumerateSensors( )
{
HRESULT hr = S_OK;
PWINBIO_UNIT_SCHEMA unitSchema = NULL;
SIZE_T unitCount = 0;
// Enumerate the installed biometric units.
hr = WinBioEnumBiometricUnits(
WINBIO_TYPE_FINGERPRINT, // Type of biometric unit
&unitSchema, // Array of unit schemas
&unitCount ); // Count of unit schemas
if (FAILED(hr))
{
wprintf_s(L"\nWinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
goto e_Exit;
}
e_Exit:
// Free memory.
if (unitSchema != NULL)
{
WinBioFree(unitSchema);
unitSchema = NULL;
}
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | winbio.h (включая Winbio.h) |
Библиотека | Winbio.lib |
DLL | Winbio.dll |