minitape.h) (SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE 结构
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
指定应用程序客户端向其发送微代码图像的子机箱。 如果该值与SES_CONFIGURATION_DIAGNOSTIC_PAGE中找到的有效SUBENCLOSURE_IDENTIFIER字段值 不匹配,则机箱服务进程应中止下载微代码操作,状态为0x80。
PageLength[2]
指定诊断页中后面的字节数。
ExpectedGenerationCode[4]
指定生成代码的预期值。 如果未将此参数设置为当前代号,则机箱服务进程将中止下载微代码操作,状态为“0x80”。
Mode
指定要用于下载微代码的模式。
值 | 含义 |
---|---|
|
在最后一个 SEND DIAGNOSTIC 命令将“下载微代码控制”诊断页传送到子抵押品赎回权完成之后,机箱服务进程应验证完整的微代码图像 (例如,执行供应商特定的校验和) 并将新的微代码图像保存到非易失性存储中。
如果微代码图像或保存操作中没有错误,则机箱服务进程应执行以下操作之一:
|
|
在最后一个 SEND DIAGNOSTIC 命令将 SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE 传送到子锁定后,机箱服务进程应验证完整的微代码图像 (例如,执行供应商特定的校验和) ,将新微代码图像保存到非易失性存储 (,例如刷写 ROM) ,并延迟激活新微码。
如果微代码图像或保存操作中没有错误,则机箱服务进程应将SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR中的“状态”字段设置为0x13 SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE(如果需要),并在以下任一操作后激活新的微代码:
|
|
指定此模式的 SEND DIAGNOSTIC 命令完成后,机箱服务进程应激活延迟的微代码映像(如果有)。 |
|
留待将来使用。 |
Reserved[2]
留待将来使用。
BufferID
指定机箱服务进程中用于接收微代码图像的特定缓冲区。 机箱服务进程将供应商特定的缓冲区 ID 代码分配给缓冲区 (例如,main固件映像可以存储在缓冲区 00h 中,备份固件映像可以存储在缓冲区 01h) 。 机箱服务进程应支持缓冲区 ID 值 00h。 如果支持多个缓冲区,则机箱服务进程应从 01h 开始连续分配其他缓冲区 ID 代码。 如果机箱服务进程收到不受支持的缓冲区 ID 代码,则应中止下载微代码操作,并将 SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR 中的“状态”字段设置为SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE结构中的0x80。
BufferOffset[4]
指定将微代码数据写入到的缓冲区中的偏移量(以字节为单位)。 机箱服务过程可能要求连续增加此字段的连续 SEND DIAGNOSTIC 命令。
ImageLength[4]
指定应用程序打算发送到指定 BufferID 的微代码图像中的字节总数。
DataLength[4]
指定 Data 的长度(以字节为单位)。
Data[ANYSIZE_ARRAY]
包含供应商特定的微代码映像的一部分。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 10 版本 1709 及更高版本的 Windows 中可用。 |
标头 | minitape.h (包括 Minitape.h、Storport.h) |