共用方式為


多工識別碼管理

RDBSS 定義 MID (多工識別碼) ,這是一個 16 位值,可供網路用戶端 (迷你重新導向器) 和伺服器區分任何連線上的同時作用中要求。 網路重新導向器可以將 MID 與其使用的任何任意內容或內部資料結構產生關聯。 它完全位於網路重新導向器的選項中,不論 MID 是否已配置和使用。

RDBSS 所定義的 MID 是已設計成符合數個準則之MID_ATLAS資料結構的一部分。 與MID_ATLAS資料結構相關聯的是一系列一或多個MID_MAP資料結構,用來將 MID 對應至相關聯的內容。

MID_ATLAS資料結構、MID_MAP結構和 MID 應該能妥善調整,以處理各種遠端伺服器的不同功能。 例如,Windows 上的一般 LAN Manager 伺服器允許任何連線上 50 個未處理的要求。 某些類型的伺服器可能支援最少一個未完成的要求,而閘道伺服器可能會希望此數目在數千個未完成連線的順序上 (很高) 。

需要妥善處理的兩個主要作業如下:

  • 將 MID 對應至與其相關聯的內容。 系統會叫用此常式來處理用戶端和伺服器 (假設伺服器使用 MID) 的任何連線所接收的每個封包。

  • 產生新的 MID 以將要求傳送至伺服器。 此常式將用於用戶端,以強制執行最大連線限制,以及使用唯一識別碼標記每個並行要求。

MID 必須能夠有效率地管理一些 MID 的唯一標記和識別, (通常從 65,536 值的組合) 50 個。 在某些情況下,建立小型MID_ATLAS結構來儲存MID_MAP結構所使用的核心記憶體,並視需要擴充MID_ATLAS結構的大小,以有效率地處理更高的使用量。 為了確保適當的時間空間取捨,查閱會組織為三層階層。 用來表示 MID 的 16 位會分割成三位欄位。 最右邊欄位的長度 (最小顯著) 取決於初始 atlas 中允許的 MID 數目上限。 這個最大值是第一次建立 MID_ATLAS資料結構時傳遞至 RxCreateMidAtlas 常式的參數。 這個最大值會決定所建立MID_ATLAS資料結構的初始大小,以及可容納多少MID_MAP資料結構。 剩餘的長度會平均分割在下兩個欄位之間,以決定可定義來擴充現有MID_ATLAS的可能次級MID_ATLAS結構大小上限,並擴充為MID_MAP資料結構的三層階層。 因此,每個MID_ATLAS資料結構可以包含MID_MAP結構的最大數目,或一個次級MID_ATLAS和MID_MAP結構的指標。

例如,如果在建立時配置最多 50 個 MID,則第一個欄位的長度為 6 (64 ( 2 ** 6 ) 大於 50 ) 。 剩餘的長度會分割成兩個欄位,每個欄位 5 位用於第二和第三個階層式層級,以便擴充現有的MID_ATLAS資料結構,以容納更多MID_MAP專案。

RDBSS 提供下列常式,可用來建立及操作MID_ATLAS資料結構、相關聯的MID_MAP資料結構和多工識別碼。

常式傳回的值 描述

RxAssociateCoNtextWithMid

此常式會將提供的不透明內容與來自MID_ATLAS結構的可用 MID 產生關聯。

RxCreateMidAtlas

此常式會配置MID_ATLAS資料結構的新實例,並將其初始化。

RxDestroyMidAtlas

此常式會終結MID_ATLAS資料結構的現有實例,並釋放配置給它的記憶體。 作為副作用,它會在MID_ATLAS 結構中的每個有效內容上叫用傳入的內容解構函式。

RxMapMidToCoNtext

此常式會將 MID 對應至MID_ATLAS結構中的相關聯內容。

RxMapAndDissociateMidFromCoNtext

此常式會將 MID 對應至MID_ATLAS結構中的相關聯內容,然後將 MID 與內容解除關聯。

RxReassociateMid

此常式會將 MID 與替代內容重新關聯。