Управление питанием (базовые службы TPM)

TBS получает события управления питанием. При получении указания о том, что доверенный платформенный модуль или другие части платформы вот-вот перейдет в состояние питания, в котором выполнение будет прервано или состояние доверенного платформенного модуля будет потеряно, TBS проверяет, будет ли выполненная в данный момент команда, скорее всего, завершится до выключения системы. Как правило, TBS позволяет выполнять команды короткой и средней длительности, но отменяет длительные команды. После возврата команды TBS перестает отправлять новые команды в доверенный платформенный модуль и готовится к гибернации. При восстановлении питания TBS возвращает результат команды вызывающей объекту, а затем переходит к обработке ожидающих команд TBS. Код управления питанием TBS выполняется асинхронно, поэтому он может обрабатывать запросы на управление питанием, даже если доверенный платформенный модуль обрабатывает длинную команду.

Когда компьютер переходит в спящий режим, в том числе S3 (спящий режим) и S4 (гибернация), доверенный платформенный модуль выключен. Таким образом, все неперсистентные состояния доверенного платформенного модуля теряются. Перед вводом этих состояний программное обеспечение приложения должно подготовиться к потере изменяющихся состояний доверенного платформенного модуля. Когда система возвращается из спящего режима, TBS синхронизируется с TPM, чтобы состояние TBS соответствовало состоянию доверенного платформенного модуля. Программному обеспечению приложения может потребоваться повторное выполнение команд, которые были прерваны.