WinBioFree 函数 (winbio.h)

释放通过先前调用 Windows 生物识别框架 API 函数为客户端应用程序分配的内存。 从Windows 10版本 1607 开始,此函数可用于移动映像。

语法

HRESULT WinBioFree(
  [in] PVOID Address
);

参数

[in] Address

要删除的内存块的地址。

返回值

如果函数成功,则返回S_OK。 如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码 说明
E_POINTER
Address 参数不能为 NULL

注解

Windows 生物识别框架 API 中的多个函数为客户端应用程序分配内存,并将该内存的地址传递给客户端。 若要防止内存泄漏,必须在使用完该块包含的信息后调用 WinBioFree 以删除该块。 通过将内存的地址传递给 WinBioFree 来删除内存。 可以通过取消引用以下每个函数中的相应参数指定的指针来查找地址。

函数 参数 已分配块的类型
WinBioCaptureSample 示例 结构
WinBioEnumBiometricUnits UnitSchemaArray 结构的数组
WinBioEnumDatabases StorageSchemaArray 结构的数组
WinBioEnumEnrollments 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
标头 winbio.h (包括 Winbio.h)
Library Winbio.lib
DLL Winbio.dll

另请参阅

WinBioCaptureSample

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders