struttura SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE (minitape.h)

La struttura SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE contiene un'immagine di microcodice specifica del fornitore (ad esempio firmware) da usare dal processo dei servizi enclosure.

Sintassi

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;

Members

PageCode

Specifica la pagina di diagnostica inviata o richiesta in base al valore . Per una pagina di diagnostica del controllo microcodice, il valore deve essere 0x0E.

SubEnclosureId

Specifica l'enclosure secondario a cui il client dell'applicazione invia l'immagine di microcodice. Se il valore non corrisponde a un valore di campo SUBENCLOSURE_IDENTIFIER valido trovato nel SES_CONFIGURATION_DIAGNOSTIC_PAGE, il processo dei servizi enclosure interromperà l'operazione di microcodice di download con lo stato 0x80.

PageLength[2]

Specifica il numero di byte che seguono nella pagina di diagnostica.

ExpectedGenerationCode[4]

Specifica il valore previsto del codice di generazione. Se questo parametro non è impostato sul codice di generazione corrente, il processo dei servizi enclosure interromperà l'operazione di microcodice di download con lo stato 0x80.

Mode

Specifica la modalità con cui scaricare il microcodice.

Valore Significato
Scaricare microcodice con offset, salvare e attivare
0x07
Al termine dell'ultimo comando SEND DIAGNOSTIC viene recapitata una pagina di diagnostica Download Microcode Control alla subenclosure, il processo dei servizi enclosure verificherà l'immagine di microcodice completa (ad esempio, eseguire un checksum specifico del fornitore) e salvare la nuova immagine microcodice in un archivio non volatile.

Se non sono presenti errori nell'immagine di microcodice o nell'operazione di salvataggio, il processo dei servizi enclosure eseguirà una delle azioni seguenti:

  • Impostare il campo Stato in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR su 0x10, se richiesto, e attivare la nuova immagine di microcodice dopo aver restituito la pagina di diagnostica Scarica stato microcodice, l'accensione o per i processi di enclosure autonomi, un ripristino rigido.
  • Impostare il campo Stato in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR su 0x11, se richiesto e solo per i servizi enclosure autonomi, attivare la nuova immagine di microcodice dopo l'accensione o il ripristino rigido.
  • Impostare il campo Stato in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR su 0x12, se richiesto, e attivare la nuova immagine di microcodice dopo l'accensione.
Scaricare microcodice con offset, salvare e rinviare l'attivazione
0x0E
Al termine dell'ultimo comando SEND DIAGNOSTIC che recapita un SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE alla subenclosure, il processo dei servizi enclosure verificherà l'immagine di microcodice completa (ad esempio, eseguire un checksum specifico del fornitore), salvare la nuova immagine di microcodice in una risorsa di archiviazione non volatile (ad esempio, flash ROM) e rinviare l'attivazione del nuovo microcodice.

Se non sono presenti errori nell'immagine del microcodice o nell'operazione di salvataggio, il processo dei servizi enclosure imposterà il campo Stato in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR su 0x13 nel SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, se richiesto e attiverà il nuovo microcodice dopo:

  • Elaborazione di questa struttura con il campo Mode impostato su 0x0F (ad esempio, Attiva microcodice posticipato)
  • Un accensione
  • Un ripristino rigido
Attivare il microcodice posticipato
0x0F
Al termine del comando SEND DIAGNOSTIC che specifica questa modalità, il processo dei servizi enclosure attiverà l'immagine di microcodice posticipata, se presente.
Reserved
Tutti gli altri valori
Riservato per usi futuri.

Reserved[2]

Riservato per usi futuri.

BufferID

Specifica un buffer specifico all'interno del processo dei servizi enclosure per ricevere l'immagine di microcodice. Il processo dei servizi enclosure assegna codici ID buffer specifici del fornitore ai buffer(ad esempio, l'immagine del firmware principale può essere archiviata nel buffer 00h e un'immagine del firmware di backup può essere archiviata nel buffer 01h). Il processo dei servizi enclosure supporta un valore di ID buffer pari a 00h. Se sono supportati più buffer, il processo dei servizi enclosure assegnerà codici ID buffer aggiuntivi contigui, a partire da 01h. Se il processo dei servizi enclosure riceve un codice ID buffer non supportato, interromperà l'operazione di microcodice di download e imposterà il campo Stato in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR su 0x80 nella struttura SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE .

BufferOffset[4]

Specifica l'offset in byte all'interno del buffer in cui i dati di microcodice vengono scritti in multipli di quattro. Il processo dei servizi enclosure può richiedere l'aumento contiguo di questo campo nei comandi SEND DIAGNOSTIC consecutivi.

ImageLength[4]

specifica il numero totale di byte nell'immagine di microcodice che l'applicazione intende inviare all'ID buffer specificato.

DataLength[4]

Specifica la lunghezza dei dati, in byte.

Data[ANYSIZE_ARRAY]

Contiene parte dell'immagine di microcodice specifica del fornitore.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 10 versione 1709 e successive di Windows.
Intestazione minitape.h (include Minitape.h, Storport.h)