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) per l'uso da parte del 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;
Membri
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 del 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 download del microcodice 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 download del microcodice 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 microcodice completa (ad esempio, eseguire un checksum specifico del fornitore) e salvare la nuova immagine microcodice in uno spazio di archiviazione non volatile.
Se non sono presenti errori nell'immagine del 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 del microcodice completa (ad esempio, eseguire un checksum specifico del fornitore), salvare la nuova immagine del microcodice in un archivio 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 imposta il campo Stato in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR su 0x13 nel SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, se richiesto e attiva 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 uso futuro. |
Reserved[2]
Riservato per uso futuro.
BufferID
Specifica un buffer specifico all'interno del processo dei servizi enclosure per ricevere l'immagine del microcodice. Il processo dei servizi enclosure assegna codici ID buffer specifici del fornitore ai buffer (ad esempio, l'immagine principale del firmware 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à altri codici ID buffer in modo contiguo, 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 imposta 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 del microcodice vengono scritti in multipli di quattro. Il processo dei servizi enclosure può richiedere che questo campo aumenti in modo contiguo nei comandi SEND DIAGNOSTIC consecutivi.
ImageLength[4]
specifica il numero totale di byte nell'immagine del microcodice che l'applicazione intende inviare all'BufferID specificato.
DataLength[4]
Specifica la lunghezza di Data, in byte.
Data[ANYSIZE_ARRAY]
Contiene parte dell'immagine del microcodice specifica del fornitore.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows 10 versione 1709 e successive di Windows. |
intestazione | minitape.h (include Minitape.h, Storport.h) |