COM 埠資料庫
系統提供的 COM 埠資料庫會依安裝在系統上的 COM 埠來任意使用 COM 埠 號碼。 Microsoft Windows 提供此元件來協助安裝 COM 埠,特別是確保每個埠號碼最多指派給一個埠。 元件包含資料庫和程式庫,其中包含安裝軟體呼叫以存取資料庫的函式。 COM 埠的所有系統提供的安裝程式都會使用 COM 埠資料庫來取得 COM 埠號碼。 雖然不是隨插即用需求,但所有廠商提供的安裝程式也應該使用 COM 埠資料庫來取得 COM 埠號碼。
如需支援 COM 埠資料庫之常式的相關資訊,請參閱 COMPort 資料庫支援常式:
另請參閱下列常式:
SerialDisplayAdvancedSettings,這是系統提供的常式,用於安裝 COM 埠的進階屬性頁面
PPORT_ADVANCED_DIALOG型別常式,提供SerialDisplayAdvancedSettings所呼叫的選擇性廠商提供對話方塊
若要在安裝程式中呼叫這些常式,請將安裝程式連結至 msports.lib,其隨附于 Windows Driver Kit (WDK) 。
COM 埠資料庫的結構
COM 埠資料庫是由元素陣列所組成,每個元素都指出 COM 埠號碼是否正在使用中。 第一個陣列元素對應至 COM1、第二個陣列元素對應至 COM2 等等。 不過,資料庫不包含指派指定埠號碼之裝置的任何資訊。 資料庫的大小等於資料庫目前仲裁的埠號碼數目。 資料庫仲裁的埠號碼數目下限為COMDB_MIN_PORTS_ARBITRATED,且其仲裁的最大數目為COMDB_MAX_PORTS_ARBITRATED。 您可以使用 ComDBResizeDatabase 常式來增加資料庫的大小。
開啟和關閉 COM 埠資料庫
使用 COM 埠資料庫之前,用戶端必須先呼叫 ComDBOpen 常式來開啟資料庫,以取得資料庫的控制碼。 資料庫會在任何連續資料庫存取期間受到相互排除的保護。 不過,無法開啟資料庫以供獨佔使用,而且其狀態可以在資料庫的不同存取之間動態變更。
判斷 COM 埠號碼的目前使用量
開啟 COM 埠資料庫之後,用戶端可以呼叫 ComDBGetCurrentPortUsage 常式來判斷哪些 COM 埠號碼已在使用中。
用戶端通常會執行下列工作:
呼叫常式,以判斷資料庫中目前正在仲裁的埠號碼數目。
第二次呼叫常式,以傳回呼叫端配置位陣列或位元組陣列中埠號碼使用量的相關資訊,其中每個位或位元組都會指定對應的埠號碼是否正在使用中。
如果資料庫中的所有埠號碼都正在使用中,或目前沒有可用的適當埠號碼,則用戶端可以調整資料庫的大小。 如需詳細資訊,請參閱調整 COM 埠資料庫的大小。
取得和釋放 COM 埠號碼
用戶端可以藉由呼叫下列其中一個常式來取得 COM 埠號碼:
ComDBClaimNextFreePort,它會宣告最低可用的埠號碼。
ComDBClaimPort,它會嘗試宣告特定的埠號碼。
宣告 COM 埠資料庫中的 COM 埠號碼會將埠號碼記錄為「使用中」。
用戶端會呼叫 ComDBReleasePort 常式來釋放埠號碼。
調整 COM 埠資料庫的大小
用戶端可以藉由呼叫 ComDBResizeDatabase 常式來調整 COM 埠資料庫的大小。 用戶端只能以 1024 的整數倍數來增加資料庫的大小。 資料庫的大小上限為 COMDB_MAX_PORTS_ARBITRATED。