Partilhar via


estrutura SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE (minitape.h)

A estrutura SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE contém uma imagem de microcódigo específica do fornecedor (ou seja, firmware) para uso pelo processo de serviços de compartimento.

Sintaxe

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;

Membros

PageCode

Especifica a página de diagnóstico que está sendo enviada ou solicitada com base no valor. Para uma página de diagnóstico do Controle de Microcódigo, o valor deve ser 0x0E.

SubEnclosureId

Especifica o sub-compartimento para o qual o cliente do aplicativo está enviando a imagem de microcódigo. Se o valor não corresponder a um valor de campo de SUBENCLOSURE_IDENTIFIER válido encontrado no SES_CONFIGURATION_DIAGNOSTIC_PAGE, o processo de serviços de compartimento anulará a operação de microcódigo de download com um status de 0x80.

PageLength[2]

Especifica o número de bytes que seguem na página de diagnóstico.

ExpectedGenerationCode[4]

Especifica o valor esperado do código de geração. Se esse parâmetro não estiver definido como o código de geração atual, o processo de serviços de compartimento anulará a operação de microcódigo de download com um status de 0x80.

Mode

Especifica com qual modo baixar o microcódigo.

Valor Significado
Baixar microcódigo com deslocamentos, salvar e ativar
0x07
Depois que o último comando SEND DIAGNOSTIC entregar uma página de diagnóstico do Controle de Microcódigo de Download à subenclosure for concluída, o processo de serviços de compartimento deverá verificar a imagem de microcódigo completa (por exemplo, executar uma soma de verificação específica do fornecedor) e salvar a nova imagem de microcódigo no armazenamento não ativo.

Se não houver erros na imagem de microcódigo ou na operação de salvamento, o processo de serviços de compartimento executará uma das seguintes ações:

  • Defina o campo Status em SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR para 0x10, se solicitado, e ative a nova imagem de microcódigo depois de retornar a página de diagnóstico de Status do Microcódigo de Download, ativar ou para processos de serviços de compartimento autônomo, uma redefinição rígida.
  • Defina o campo Status em SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR para 0x11, se solicitado, e somente para processos de serviços de compartimento autônomo, ative a nova imagem de microcódigo após a ativação ou a redefinição rígida.
  • Defina o campo Status em SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR para 0x12, se solicitado, e ative a nova imagem de microcódigo após a ativação.
Baixar o microcódigo com deslocamentos, salvar e adiar a ativação
0x0E
Depois que o último comando SEND DIAGNOSTIC fornecer um SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE à subenclosure for concluído, o processo de serviços de compartimento deverá verificar a imagem de microcódigo completa (por exemplo, executar uma soma de verificação específica do fornecedor), salvar a nova imagem de microcódigo no armazenamento não ativo (por exemplo, ROM flash) e adiar a ativação do novo microcódigo.

Se não houver erros na imagem de microcódigo ou na operação de salvamento, o processo de serviços de compartimento definirá o campo Status em SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR para 0x13 no SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, se solicitado, e ativar o novo microcódigo após:

  • Processando essa estrutura com o campo modo definido como 0x0F (ou seja, ativar o microcódigo adiado)
  • Uma potência ativada
  • Uma redefinição dura
Ativar de microcódigo adiado
0x0F
Depois que o comando SEND DIAGNOSTIC especificar esse modo for concluído, o processo de serviços de compartimento ativará a imagem de microcódigo adiada, se houver.
Reservada
Todos os outros valores
Reservado para uso futuro.

Reserved[2]

Reservado para uso futuro.

BufferID

Especifica um buffer específico dentro do processo de serviços de compartimento para receber a imagem de microcódigo. O processo de serviços de compartimento atribui códigos de ID de buffer específicos do fornecedor a buffers (por exemplo, a imagem de firmware principal pode ser armazenada no buffer 00h e uma imagem de firmware de backup pode ser armazenada no buffer 01h). O processo de serviços de compartimento deve dar suporte a um valor de ID de buffer de 00h. Se houver suporte para mais de um buffer, o processo de serviços de compartimento atribuirá códigos de ID de buffer adicionais de forma contígua, começando com 01h. Se o processo de serviços de compartimento receber um código de ID de buffer sem suporte, ele anulará a operação de microcódigo de download e definirá o campo status em SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR para 0x80 na estrutura SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE.

BufferOffset[4]

Especifica o deslocamento em bytes dentro do buffer ao qual os dados de microcódigo são gravados em múltiplos de quatro. O processo de serviços de compartimento pode exigir que esse campo aumente contíguamente em comandos SEND DIAGNOSTIC consecutivos.

ImageLength[4]

especifica o número total de bytes na imagem de microcódigo que o aplicativo pretende enviar para a bufferIDespecificada.

DataLength[4]

Especifica o comprimento de Data, em bytes.

Data[ANYSIZE_ARRAY]

Contém parte da imagem de microcódigo específica do fornecedor.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows 10, versão 1709 e versões posteriores do Windows.
cabeçalho minitape.h (inclua Minitape.h, Storport.h)