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 |
---|---|
|
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:
|
|
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:
|
|
Al termine del comando SEND DIAGNOSTIC che specifica questa modalità, il processo dei servizi enclosure attiverà l'immagine di microcodice posticipata, se presente. |
|
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) |