共用方式為


命令排程

命令排程

命令可以隨時從多個內容提交至 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 本身進行任何特殊處理。

清理

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