資源配置器資源配置程式
每次資源分配器從其持有者配置資源時,就會發生下列情況:
資源分配器會宣告資源類型識別碼 (RESTYPID),其描述所需的資源類型。
資源分配器會呼叫持有人的 IHolder::AllocResource 方法,並傳遞此 RESTYPID。
持有者會從可用的資源產生候選清單。 候選專案是未在交易中登記或已在呼叫物件交易中登記的資源。
這些候選專案會個別傳遞至 IDispenserDriver::RateResource 方法,其評等方式為 0 到 100,因為候選資源與所需 RESTYPID 的比對程度。
持有者會選擇資源分配器費率最高的資源。
資源分配器可以提前終止評等迴圈,方法是將候選資源評等指派為 100 (完全適合)。 100 的評等通常保留給已經適當登記的候選資源,除非資源分配器得出結論,登記是一項廉價的作業。 如果所有候選資源(如果有的話)都評為 0(無法使用),則會呼叫 IDispenserDriver::CreateResource 來建立新的資源。
如果先前選擇的資源尚未登記在呼叫物件的交易中,則會呼叫資源分配器的 IDispenserDriver::EnlistResource 方法。
AllocResource 方法呼叫會傳回具有已登記資源的資源分配器。
相關主題