WinBioEnumBiometricUnits 函式 (winbio.h)

列舉符合輸入類型的所有附加生物特徵辨識單位。

語法

HRESULT WinBioEnumBiometricUnits(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_UNIT_SCHEMA    **UnitSchemaArray,
  [out] SIZE_T                *UnitCount
);

參數

[in] Factor

WINBIO_BIOMETRIC_TYPE旗標的位掩碼,指定要列舉的生物特徵辨識單位類型。 目前僅支援 WINBIO_TYPE_FINGERPRINT

[out] UnitSchemaArray

變數的位址,該變數會接收 WINBIO_UNIT_SCHEMA結構的指標 ,其中包含每個列舉生物特徵辨識單位的相關信息。 如果函式不成功,指標會設定為 NULL。 如果函式成功,您必須將指標傳遞至 WinBioFree ,以釋放內部配置給數位的記憶體。

[out] UnitCount

值的指標,指定 UnitSchemaArray 參數所指向的結構數目。

傳回值

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

傳回碼 Description
E_INVALIDARG
Factor 參數中包含的位掩碼包含一或多個無效的類型位。
E_OUTOFMEMORY
記憶體不足,無法完成要求。
E_POINTER
UnitSchemaArrayUnitCount 參數不可為 NULL
WINBIO_E_DISABLED
目前的系統管理原則禁止使用 Windows 生物特徵辨識架構 API。

備註

Factor 參數目前僅支援WINBIO_TYPE_FINGERPRINT

如果在 UnitSchemaArray 參數所指向的結構數位中傳回多個已安裝生物特徵辨識單位的相關信息,則單位不保證會以任何特定順序傳回。

使用傳回 至 UnitSchemaArray 參數的結構之後,您必須呼叫 WinBioFree ,以釋放內部配置給數位的記憶體。

如果 Factor 位掩碼中的所有因素位都參考不支援的生物特徵辨識類型,則函式會傳回S_OK但 UnitSchemaArray 參數所指向的值會是 NULL, 而 UnitCount 參數將包含零。 雖然查詢不支援生物特徵辨識因素並無錯誤,但查詢的結果將會是空的集合。

範例

下列函式會呼叫 WinBioEnumBiometricUnits 來列舉已安裝的生物特徵辨識單位。 連結到Winbio.lib 靜態庫,並包含下列頭檔:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumerateSensors( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_UNIT_SCHEMA unitSchema = NULL;
    SIZE_T unitCount = 0;
    SIZE_T index = 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"\n WinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display information for each installed biometric unit.
    wprintf_s(L"\nSensors: \n");
    for (index = 0; index < unitCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tUnit ID: %d\n", 
                 index, 
                 unitSchema[index].UnitId );
        wprintf_s(L"\tDevice instance ID: %s\n", 
                 unitSchema[index].DeviceInstanceId );
        wprintf_s(L"\tPool type: %d\n", 
                 unitSchema[index].PoolType );
        wprintf_s(L"\tBiometric factor: %d\n", 
                 unitSchema[index].BiometricFactor );
        wprintf_s(L"\tSensor subtype: %d\n", 
                 unitSchema[index].SensorSubType );
        wprintf_s(L"\tSensor capabilities: 0x%08x\n", 
                 unitSchema[index].Capabilities );
        wprintf_s(L"\tDescription: %s\n", 
                 unitSchema[index].Description );
        wprintf_s(L"\tManufacturer: %s\n", 
                 unitSchema[index].Manufacturer );
        wprintf_s(L"\tModel: %s\n", 
                 unitSchema[index].Model );
        wprintf_s(L"\tSerial no: %s\n", 
                 unitSchema[index].SerialNumber );
        wprintf_s(L"\tFirmware version: [%d.%d]\n", 
                 unitSchema[index].FirmwareVersion.MajorVersion, 
                 unitSchema[index].FirmwareVersion.MinorVersion);
    }


e_Exit:
    if (unitSchema != NULL)
    {
        WinBioFree(unitSchema);
        unitSchema = NULL;
    }

    wprintf_s(L"\nPress any key to exit...");
    _getch();

    return hr;
}


規格需求

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

另請參閱

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders