estrutura SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE (scsi.h)
A estrutura SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE contém uma imagem de microcódigo específico 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 a seguir 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 |
---|---|
|
Depois que o último comando SEND DIAGNOSTIC entregar uma página de diagnóstico Baixar Controle de Microcódigo à subenclosure for concluída, o processo de serviços de compartimento 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 em armazenamento não volátil.
Se não houver erros na imagem de microcódigo ou na operação de salvamento, o processo de serviços de compartimento deverá executar uma das seguintes ações:
|
|
Após a conclusão do último comando SEND DIAGNOSTIC que fornece uma SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE à subenclosura, o processo de serviços de compartimento deve 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 em armazenamento não volátil (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 como 0x13 no SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, se solicitado, e ativará o novo microcódigo após:
|
|
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. |
|
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 main 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 como 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 o BufferID especificado.
DataLength[4]
Especifica o comprimento de Dados, em bytes.
Data[ANYSIZE_ARRAY]
Contém parte da imagem de microcódigo específica do fornecedor.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível em Windows 10, versão 1709 e versões posteriores do Windows. |
Cabeçalho | scsi.h (inclua Minitape.h, Storport.h) |