Поделиться через


структура SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE (minitape.h)

Структура SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE содержит конкретный микрокод поставщика (т. е. встроенное ПО) для использования процессом служб корпуса.

Синтаксис

typedef struct _SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE {
  UCHAR PageCode;
  UCHAR SubEnclosureId;
  UCHAR PageLength[2];
  UCHAR ExpectedGenerationCode[4];
  UCHAR Mode;
  UCHAR Reserved[2];
  UCHAR BufferID;
  UCHAR BufferOffset[4];
  UCHAR ImageLength[4];
  UCHAR DataLength[4];
  UCHAR Data[ANYSIZE_ARRAY];
} SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE, *PSES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE;

Члены

PageCode

Указывает страницу диагностики, отправляемую или запрашиваемую в зависимости от значения. Для страницы диагностики элемента управления Микрокодом значение должно быть 0x0E.

SubEnclosureId

Указывает вложенный корпус, в который клиент приложения отправляет образ микрокода. Если значение не соответствует допустимому значению поля SUBENCLOSURE_IDENTIFIER, найденном в SES_CONFIGURATION_DIAGNOSTIC_PAGE, процесс служб корпуса должен прервать операцию скачивания микрокода с состоянием 0x80.

PageLength[2]

Указывает количество байтов, которые следуют на странице диагностики.

ExpectedGenerationCode[4]

Указывает ожидаемое значение кода создания. Если этот параметр не задан в коде текущего поколения, процесс служб корпуса прерывает операцию скачивания микрокода с состоянием 0x80.

Mode

Указывает режим скачивания микрокода.

Ценность Значение
Скачивание микрокода со смещениями, сохранением и активацией
0x07
После того как после выполнения последней команды SEND DIAGNOSTIC доставляется страница диагностики "Скачать элемент управления микрокодом" в подклюсе, процесс служб корпуса должен проверить полный образ микрокода (например, выполнить определенную контрольную сумму поставщика) и сохранить новый образ микрокода в неволатильное хранилище.

Если в изображении микрокода или в операции сохранения отсутствуют ошибки, процесс служб корпуса должен выполнить одно из следующих действий:

  • Задайте для поля состояния в SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR значение 0x10, если запрашивается, и активируйте новый образ микрокода после возврата страницы диагностики состояния загрузки микрокода, питания или для автономных процессов обслуживания корпуса, жесткого сброса.
  • Задайте для поля состояния в SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR значение 0x11, если это запрошено, а также для автономных служб корпуса, активируйте только новый образ микрокода после включения или жесткого сброса.
  • Задайте для поля состояния в SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR значение 0x12, если это запрошено, и активируйте новый образ микрокода после включения.
Скачивание микрокода со смещениями, сохранением и отсрочкой активации
0x0E
После завершения последней команды SEND DIAGNOSTIC, отправляющей SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE в подклассуру, процесс служб корпуса должен проверить полный образ микрокода (например, выполнить определенную контрольную сумму поставщика), сохранить новый образ микрокода в неволатильное хранилище (например, флэш-диск) и отложить активацию нового микрокода.

Если в изображении микрокода или в операции сохранения отсутствуют ошибки, процесс служб корпуса должен задать для поля состояние в SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR 0x13 в SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, если он запрошен, и активировать новый микрокод после этого:

  • Обработка этой структуры с помощью поля режима значение 0x0F (т. е. активация отложенного микрокода)
  • Питание
  • Жесткий сброс
Активация отложенного микрокода
0x0F
После завершения команды SEND DIAGNOSTIC, указывающей этот режим, процесс служб корпуса активирует отложенный образ микрокода, если таковой имеется.
зарезервированные
Все остальные значения
Зарезервировано для дальнейшего использования.

Reserved[2]

Зарезервировано для дальнейшего использования.

BufferID

Указывает определенный буфер в процессе служб корпуса для получения образа микрокода. Процесс служб корпуса назначает определенным поставщикам коды идентификаторов буфера (например, основной образ встроенного ПО может храниться в буфере 00h, а образ встроенного ПО резервного копирования может храниться в буфере 01h). Процесс служб корпуса должен поддерживать значение идентификатора буфера 00h. Если поддерживается несколько буферов, процесс служб корпуса должен назначать дополнительные коды идентификаторов буфера, начиная с 01h. Если процесс служб корпуса получает неподдерживаемый код идентификатора буфера, он должен прервать операцию скачивания микрокода и задать поле состояния в SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR для 0x80 в структуре SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE.

BufferOffset[4]

Указывает смещение в байтах в буфере, в котором данные микрокода записываются в несколько из четырех. Процесс служб корпуса может потребовать, чтобы это поле было непрерывно увеличиваться в последовательных командах SEND DIAGNOSTIC.

ImageLength[4]

указывает общее количество байтов в изображении микрокода, которое приложение намерено отправить в указанный BufferID.

DataLength[4]

Указывает длину данныхв байтах.

Data[ANYSIZE_ARRAY]

Содержит часть образа конкретного микрокода поставщика.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 10 версии 1709 и более поздних версиях Windows.
заголовка minitape.h (include Minitape.h, Storport.h)