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