命令排程

命令排程

命令可以隨時從多個內容提交至 TBS。 不過,實體 TPM 一次只能處理一個命令,而某些命令可以長時間執行。 當多個命令擱置時,TBS 會決定要傳送至 TPM 的命令。 提交命令時,每個命令都有與其相關聯的優先順序。 TBS 會使用這些優先順序來判斷每當 TPM 可用時要提交的擱置命令。 優先順序的四個層級為低、標準、高和系統。 應用程式應該使用低、一般或高優先順序。 雖然高優先順序命令通常會在低優先順序命令之前執行,但 TBS 命令排程器具有過時的原則,最終會為已封鎖大量時間的命令提供非常高的優先順序。

內容管理

當TPM_SaveCoNtext或 TPM2 CoNtextSave 命令以虛擬控制碼提交至 TBS 所管理的資源時,TBS 會在實體資源上執行適當的命令,並在 TPM 中實際存在資源時,將結果傳回給呼叫者。 如果資源實際上不存在於 TPM 中,則TPM_SaveCoNtext或TPM2_CoNtextSave命令的前置處理會導致重載資源,此時內容將會儲存並傳回給呼叫端。 如果儲存的資源屬於在儲存後從 TPM 自動排清的類型,TBS 會在此命令完成時使虛擬資源失效。 當TPM_LoadCoNtext或TPM2_CoNtextLoad命令提交至 TBS 時,TBS 會立即執行命令。 如果命令順利完成,TBS 會將資源控制碼虛擬化,並將產生的 TPM 位元組資料流程傳遞至呼叫端。 當TPM_FlushSpecific或TPM2_FlushCoNtext命令以虛擬控制碼提交至 TBS 所管理的資源時,TBS 會執行TPM_FlushSpecific或TPM2_FlushCoNtext命令,以在實際存在時從 TPM 收回資源。 在此情況下,TBS 會使虛擬資源失效,並將 flush 命令的結果傳回給呼叫端。 如果資源實際上不存在於 TPM 中,則TPM_FlushSpecific或TPM2_FlushCoNtext命令的前置處理會載入對應至虛擬控制碼的資源,但接著會在實際處理命令時排清。 TBS 不支援TPM_KeyControlOwner位或TPM_LoadCoNtext作業的 keepHandle 功能,因此不會提供資源在儲存內容之前所擁有的相同控制碼。

其他命令

本檔中未提及的命令會視需要) 將虛擬金鑰控制碼取代為實體金鑰控制碼, (並提交至 TPM 來處理。 執行適當的作業之後,就會完成此作業,以確保所使用的資源實際存在於 TPM 上。 不會執行其他特殊處理。 TBS 不會藉由修改從 TPM 傳回的資料做為TPM_GetCapabilities或TPM2_GetCapability查詢的一部分,來嘗試改善虛擬化的精確度。 TBS 也支援 TCG 實體存在命令。 TBS 可作為實體目前狀態命令的傳遞;TBS 本身不會執行任何特殊處理。

清理

當內容結束時,會清除與其相關聯的所有實體和虛擬資源,使其不再耗用系統資源。