Share via


SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE estructura (scsi.h)

La estructura de SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE contiene una imagen específica del microcódigo del proveedor (es decir, firmware) para que la use el proceso de servicios de gabinete.

Sintaxis

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;

Miembros

PageCode

Especifica la página de diagnóstico que se envía o solicita según el valor. Para una página de diagnóstico de control de microcódigo, el valor debe ser 0x0E.

SubEnclosureId

Especifica el subconsulta al que el cliente de la aplicación envía la imagen de microcódigo. Si el valor no coincide con un valor de campo SUBENCLOSURE_IDENTIFIER válido que se encuentra en el SES_CONFIGURATION_DIAGNOSTIC_PAGE, el proceso de servicios del contenedor anulará la operación de microcódigo de descarga con un estado de 0x80.

PageLength[2]

Especifica el número de bytes siguientes en la página de diagnóstico.

ExpectedGenerationCode[4]

Especifica el valor esperado del código de generación. Si este parámetro no se establece en el código de generación actual, el proceso de servicios de gabinete anulará la operación de microcódigo de descarga con un estado de 0x80.

Mode

Especifica el modo con el que descargar el microcódigo.

Valor Significado
Descargar microcódigo con desplazamientos, guardar y activar
0x07
Después de que el último comando SEND DIAGNOSTIC entregue una página de diagnóstico descargar microcódigo al subenclosure completado, el proceso de servicios del contenedor comprobará la imagen de microcódigo completa (por ejemplo, realizar una suma de comprobación específica del proveedor) y guardar la nueva imagen de microcódigo en almacenamiento no volátil.

Si no hay errores en la imagen de microcódigo o en la operación de guardado, el proceso de servicios del gabinete realizará una de las siguientes acciones:

  • Establezca el campo Estado en SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR en 0x10, si se solicita y active la nueva imagen de microcódigo después de devolver la página de diagnóstico Descargar estado de microcódigo, encender o para los procesos de servicios de gabinete independientes, un restablecimiento duro.
  • Establezca el campo Estado en SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR en 0x11, si se solicita y solo para los procesos de servicios de gabinete independientes, active la nueva imagen de microcódigo después de encender o restablecer de forma dura.
  • Establezca el campo Estado en SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR en 0x12, si se solicita, y active la nueva imagen de microcódigo después de encenderse.
Descargar microcódigo con desplazamientos, guardar y aplazar la activación
0x0E
Una vez completado el último comando SEND DIAGNOSTIC que entrega una SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE a la subenclosure, el proceso de servicios de gabinete comprobará la imagen completa de microcódigo (por ejemplo, realizar una suma de comprobación específica del proveedor), guarde la nueva imagen de microcódigo en almacenamiento no volátil (por ejemplo, ROM flash) y aplaza la activación del nuevo microcódigo.

Si no hay errores en la imagen de microcódigo o en la operación de guardado, el proceso de servicios de gabinete establecerá el campo Estado en SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR en 0x13 en el SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, si se solicita, y activar el nuevo microcódigo después de:

  • Procesamiento de esta estructura con el campo Modo establecido en 0x0F (es decir, Activar microcódigo diferido)
  • Una alimentación
  • Un restablecimiento duro
Activación del microcódigo diferido
0x0F
Una vez completado el comando SEND DIAGNOSTIC que especifica este modo, el proceso de servicios de gabinete activará la imagen diferida de microcódigo, si existe.
Reserved
Todos los demás valores
Reservado para un uso futuro.

Reserved[2]

Reservado para un uso futuro.

BufferID

Especifica un búfer específico dentro del proceso de servicios de gabinete para recibir la imagen de microcódigo. El proceso de servicios de gabinete asigna códigos de identificador de búfer específicos del proveedor a los búferes (por ejemplo, la imagen de firmware principal se puede almacenar en el búfer 00h y una imagen de firmware de copia de seguridad se puede almacenar en el búfer 01h). El proceso de servicios de gabinete admitirá un valor de identificador de búfer de 00h. Si se admite más de un búfer, el proceso de servicios de gabinete asignará códigos de identificador de búfer adicionales de forma contigua, a partir de 01h. Si el proceso de servicios de gabinete recibe un código de identificador de búfer no admitido, anulará la operación de microcódigo de descarga y establecerá el campo Estado en SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR en 0x80 en la estructura de SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE .

BufferOffset[4]

Especifica el desplazamiento en bytes dentro del búfer en el que se escriben los datos de microcódigo en múltiplos de cuatro. El proceso de servicios de gabinete puede requerir que este campo aumente contiguamente en comandos CONSECUTIVOs SEND DIAGNOSTIC.

ImageLength[4]

especifica el número total de bytes en la imagen de microcódigo que la aplicación pretende enviar al bufferID especificado.

DataLength[4]

Especifica la longitud de Datos, en bytes.

Data[ANYSIZE_ARRAY]

Contiene parte de la imagen de microcódigo específica del proveedor.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 10, versión 1709 y versiones posteriores de Windows.
Encabezado scsi.h (incluya Minitape.h, Storport.h)