列舉所有符合特定類型的註冊資料庫。
語法
HRESULT WinBioEnumDatabases(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[out] WINBIO_STORAGE_SCHEMA **StorageSchemaArray,
[out] SIZE_T *StorageCount
);
參數
[in] Factor
一個由WINBIO_BIOMETRIC_TYPE旗組成的位元遮罩,指定要列舉的生物特徵單位類型。 目前只支援 WINBIO_TYPE_FINGERPRINT 。
[out] StorageSchemaArray
變數的位址,該變數接收到包含每個資料庫資訊的 WINBIO_STORAGE_SCHEMA 結構陣列指標。 若函式未成功,指標將設為 NULL。 如果函式成功,你必須將指標傳給 WinBioFree ,以釋放內部分配給陣列的記憶體。
[out] StorageCount
指標指向一個由 StorageSchemaArray 參數指向結構數量的值。
返回值
如果函式成功,則會傳回S_OK。 如果函式失敗,它會傳回指出錯誤的 HRESULT 值。 可能的值包括但不限於下表中的值。 如需常見錯誤碼的清單,請參閱 常見的 HRESULT 值。
| 回傳碼 | Description |
|---|---|
|
Factor 參數中包含的位元遮罩包含一個或多個無效型態位元。 |
|
記憶體不足以完成請求。 |
|
StorageSchemaArray 和 StorageCount 參數不能是 NULL。 |
備註
目前因子參數只支援WINBIO_TYPE_FINGERPRINT。
如果多個資料庫的資訊以 StorageSchemaArray 參數指向的結構陣列回傳,資料庫不會保證會以特定順序排列。
當你完成回傳到 StorageSchemaArray 參數的結構後,必須呼叫 WinBioFree 來釋放內部分配給陣列的記憶體。
範例
以下程式碼範例呼叫 WinBioEnumDatabases 來列舉系統上的生物特徵資料庫。 範例中也包含一個函式 DisplayGuid,用來顯示資料庫 ID。 連結至 Winbio.lib 靜態程式庫,並包含下列標頭檔:
- Windows.h
- 標準.h
- Conio.h
- Winbio.h
HRESULT EnumDatabases( )
{
// Declare variables.
HRESULT hr = S_OK;
PWINBIO_STORAGE_SCHEMA storageSchemaArray = NULL;
SIZE_T storageCount = 0;
SIZE_T index = 0;
// Enumerate the databases.
hr = WinBioEnumDatabases(
WINBIO_TYPE_FINGERPRINT, // Type of biometric unit
&storageSchemaArray, // Array of database schemas
&storageCount ); // Number of database schemas
if (FAILED(hr))
{
wprintf_s(L"\nWinBioEnumDatabases failed. hr = 0x%x\n", hr);
goto e_Exit;
}
// Display information for each database.
wprintf_s(L"\nDatabases:\n");
for (index = 0; index < storageCount; ++index)
{
wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n",
index,
storageSchemaArray[index].BiometricFactor );
wprintf_s(L"\tDatabase ID: ");
DisplayGuid(&storageSchemaArray[index].DatabaseId);
wprintf_s(L"\n");
wprintf_s(L"\tData format: ");
DisplayGuid(&storageSchemaArray[index].DataFormat);
wprintf_s(L"\n");
wprintf_s(L"\tAttributes: 0x%08x\n",
storageSchemaArray[index].Attributes);
wprintf_s(L"\tFile path: %ws\n",
storageSchemaArray[index].FilePath );
wprintf_s(L"\tCnx string: %ws\n",
storageSchemaArray[index].ConnectionString );
wprintf_s(L"\n");
}
e_Exit:
if (storageSchemaArray != NULL)
{
WinBioFree(storageSchemaArray);
storageSchemaArray = 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]
);
}
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 7 [僅限桌面應用程式] |
| 支援的最低伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | winbio.h(包括Winbio.h) |
| Library | Winbio.lib 網站 |
| DLL | Winbio.dll |