SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE-Struktur (minitape.h)
Die SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE-Struktur enthält ein herstellerspezifisches Microcodeimage (z. B. Firmware) zur Verwendung durch den Gehäusedienstprozess.
Syntax
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;
Member
PageCode
Gibt die Diagnoseseite an, die basierend auf dem Wert gesendet oder angefordert wird. Für eine Diagnoseseite des Microcodesteuerelements sollte der Wert 0x0E sein.
SubEnclosureId
Gibt das Untergehäuse an, an das der Anwendungsclient das Microcodeimage sendet. Wenn der Wert nicht mit einem gültigen SUBENCLOSURE_IDENTIFIER Feldwert in der SES_CONFIGURATION_DIAGNOSTIC_PAGE übereinstimmt, muss der Prozess des Gehäusedienstes den Microcode-Downloadvorgang mit einer status 0x80 abbrechen.
PageLength[2]
Gibt die Anzahl der Bytes an, die auf der Diagnoseseite folgen.
ExpectedGenerationCode[4]
Gibt den erwarteten Wert des Generierungscodes an. Wenn dieser Parameter nicht auf den Code der aktuellen Generation festgelegt ist, muss der Prozess der Gehäusedienste den Vorgang zum Herunterladen von Microcode mit einer status 0x80 abbrechen.
Mode
Gibt an, mit welchem Modus der Microcode heruntergeladen werden soll.
Wert | Bedeutung |
---|---|
|
Nachdem der letzte SEND DIAGNOSTIC-Befehl die Diagnoseseite "Microcodesteuerung herunterladen" an die Subenclosure übermittelt hat, überprüft der Gehäusedienstprozess das vollständige Microcodebild (z. B. eine herstellerspezifische Prüfsumme) und speichert das neue Microcodeimage in einem nicht flüchtigen Speicher.
Wenn keine Fehler im Microcodeimage oder beim Speichervorgang auftreten, führt der Gehäusedienstprozess eine der folgenden Aktionen aus:
|
|
Nachdem der letzte SEND DIAGNOSTIC-Befehl, der eine SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE an die Subenclosure übermittelt, abgeschlossen ist, überprüft der Prozess der Gehäusedienste das vollständige Microcodeimage (z. B. durchführen eine herstellerspezifische Prüfsumme), speichert das neue Microcodeimage in einem nicht flüchtigen Speicher (z. B. Flash-ROM) und verzögert die Aktivierung des neuen Microcodes.
Wenn im Microcodebild oder beim Speichervorgang keine Fehler auftreten, muss der Prozess der Gehäusedienste das Feld Status in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR auf 0x13 im SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE festlegen, falls angefordert, und der neue Mikrocode wird nach folgendem aktiviert:
|
|
Nachdem der Befehl SEND DIAGNOSTIC, der diesen Modus angibt, abgeschlossen ist, aktiviert der Gehäusedienstprozess das verzögerte Microcodeimage, falls vorhanden. |
|
Für zukünftige Verwendung reserviert. |
Reserved[2]
Für zukünftige Verwendung reserviert.
BufferID
Gibt einen bestimmten Puffer innerhalb des Gehäusedienstprozesses an, um das Mikrocodeimage zu empfangen. Der Prozess der Gehäusedienste weist Puffern herstellerspezifische Puffer-ID-Codes zu (z. B. kann das Standard Firmwareimages im Puffer 00h und ein Sicherungsfirmwareimage kann im Puffer 01h gespeichert werden). Der Prozess der Gehäusedienste muss einen Puffer-ID-Wert von 00h unterstützen. Wenn mehr als ein Puffer unterstützt wird, weist der Prozess der Gehäusedienste ab 01h fortlaufend zusätzliche Puffer-ID-Codes zu. Wenn der Prozess der Gehäusedienste einen nicht unterstützten Puffer-ID-Code empfängt, wird der Vorgang zum Herunterladen des Mikrocodes abgebrochen und das Feld Status in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR auf 0x80 in der SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE-Struktur festgelegt.
BufferOffset[4]
Gibt den Offset in Bytes innerhalb des Puffers an, in den die Microcodedaten in Vielfaches von vier geschrieben werden. Der Prozess der Gehäusedienste erfordert möglicherweise, dass dieses Feld in aufeinanderfolgenden SEND DIAGNOSTIC-Befehlen kontinuierlich erhöht wird.
ImageLength[4]
gibt die Gesamtzahl der Bytes im Microcodeimage an, das die Anwendung an die angegebene BufferID senden möchte.
DataLength[4]
Gibt die Länge der Daten in Bytes an.
Data[ANYSIZE_ARRAY]
Enthält einen Teil des herstellerspezifischen Microcodeimages.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 10, Version 1709 und höher von Windows. |
Kopfzeile | minitape.h (einschließlich Minitape.h, Storport.h) |