SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE结构 (storport.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

指定应用程序客户端向其发送微代码映像的子机箱。 如果该值与 SES_CONFIGURATION_DIAGNOSTIC_PAGE中找到的有效SUBENCLOSURE_IDENTIFIER字段值不匹配,则机箱服务过程应中止下载微码操作,状态为0x80。

PageLength

指定诊断页中后面的字节数。

ExpectedGenerationCode

指定生成代码的预期值。 如果未将此参数设置为当前生成代码,则机箱服务过程应中止下载微代码操作,状态为0x80。

Mode

指定要使用哪个模式下载微码。

含义
下载带有偏移量、保存和激活的微码
0x07
在上一个 SEND DIAGNOSTIC 命令将“下载微码控制”诊断页传递到子保护完成之后,机箱服务过程应验证完整的微码图像 (,例如,执行供应商特定的校验和) 并将新的微码图像保存到非易失存储中。

如果微码图像或保存操作中没有错误,则机箱服务过程应执行以下操作之一:

下载带有偏移量、保存和延迟激活的微码
0x0E
在最后一个 SEND DIAGNOSTIC 命令将 SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE 传送到子克隆完成之后,机箱服务过程应验证完整的微码图像 (,例如执行供应商特定的校验和) ,将新的微码图像保存到非易失性存储 (,例如闪存 ROM) ,并延迟激活新的微码。

如果微码图像或保存操作中没有错误,则机箱服务过程应将SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR中的“状态”字段设置为SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE中的0x13(如果已请求)并在以下任一之后激活新微码:

  • 使用“ 模式” 字段设置为0x0F (处理此结构,即激活延迟的微码)
  • 开机
  • 硬重置
激活延迟微码
0x0F
指定此模式的 SEND DIAGNOSTIC 命令完成后,机箱服务过程应激活延迟的微码图像(如果有)。
Reserved
所有其他值
留待将来使用。

Reserved

留待将来使用。

BufferID

指定机箱服务进程内用于接收微码图像的特定缓冲区。 机箱服务进程将供应商特定的缓冲区 ID 代码分配给缓冲区 (,例如,主固件映像可以存储在缓冲区 00h 中,备份固件映像可以存储在缓冲区 01h) 中。 机箱服务过程应支持缓冲区 ID 值为 00 小时。 如果支持多个缓冲区,则机箱服务过程应连续分配额外的缓冲区 ID 代码,从 01 小时开始。 如果机箱服务进程收到不受支持的缓冲区 ID 代码,则它将中止下载微代码操作,并将SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR中的“状态”字段设置为SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE结构中的0x80

BufferOffset

指定用四个倍数写入微码数据的缓冲区中的偏移量(以字节为单位)。 机箱服务过程可能需要连续增加此字段的 SEND DIAGNOSTIC 命令。

ImageLength

指定应用程序打算发送到指定 BufferID 的微代码图像中的字节总数。

DataLength

指定 数据长度(以字节为单位)。

Data

包含供应商特定微代码映像的一部分。

要求

   
最低受支持的客户端 可在 Windows 10 版本 1709 及更高版本的 Windows 中使用。
Header storport.h (包括 Minitape.h、Storport.h)