структура SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE (scsi.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
Указывает страницу диагностики, отправляемую или запрашиваемую на основе значения . Для страницы диагностики Microcode Control значение должно быть 0x0E.
SubEnclosureId
Указывает вложенный корпус, в который клиент приложения отправляет изображение микрокода. Если значение не соответствует допустимому значению поля SUBENCLOSURE_IDENTIFIER, указанному в SES_CONFIGURATION_DIAGNOSTIC_PAGE, процесс обслуживания корпуса должен прервать операцию скачивания микрокода с состоянием 0x80.
PageLength[2]
Указывает количество байтов, приведенных на странице диагностики.
ExpectedGenerationCode[4]
Указывает ожидаемое значение кода создания. Если для этого параметра не задан текущий код поколения, процесс служб корпуса должен прервать операцию скачивания микрокода с состоянием 0x80.
Mode
Указывает режим загрузки микрокода.
Значение | Значение |
---|---|
|
После того как последняя команда SEND DIAGNOSTIC доставляет диагностическую страницу Download Microcode Control (Скачать управление микрокодом) в подзаключение завершится, процесс обслуживания корпуса должен проверить полный образ микрокода (например, выполнить контрольную сумму определенного поставщика) и сохранить новый образ микрокода в энергонезависимое хранилище.
Если в изображении микрокода или в операции сохранения нет ошибок, процесс обслуживания корпуса должен выполнить одно из следующих действий:
|
|
После завершения последней команды SEND DIAGNOSTIC, доставляющей SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE в подоткрытие, процесс служб корпуса должен проверить полный образ микрокода (например, выполнить контрольную сумму определенного поставщика), сохранить новый образ микрокода в энергонезависимом хранилище (например, флэш-диск) и отложить активацию нового микрокода.
Если в изображении микрокода или в операции сохранения нет ошибок, процесс обслуживания корпуса должен задать для поля Состояние в SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR значение 0x13 в SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, если требуется, и активировать новый микрокод после следующего:
|
|
После завершения команды SEND DIAGNOSTIC, указывающей этот режим, процесс служб корпуса активирует отложенный образ микрокода, если таковой имеется. |
|
Зарезервировано для будущего использования. |
Reserved[2]
Зарезервировано для будущего использования.
BufferID
Указывает определенный буфер в процессе служб корпуса для получения изображения микрокода. Процесс служб корпуса назначает буферам коды идентификаторов конкретных поставщиков (например, образ встроенного ПО main может храниться в буфере 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. |
Верхняя часть | scsi.h (включая Minitape.h, Storport.h) |