SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE Struktur (scsi.h)
Die SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE-Struktur enthält ein herstellerspezifisches Mikrocodeimage (z. B. Firmware) für die 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;
Angehörige
PageCode
Gibt die Diagnoseseite an, die basierend auf dem Wert gesendet oder angefordert wird. Bei einer Microcode Control-Diagnoseseite sollte der Wert 0x0E werden.
SubEnclosureId
Gibt das Untergehäuse an, an das der Anwendungsclient das Mikrocodeimage sendet. Wenn der Wert nicht mit einem gültigen SUBENCLOSURE_IDENTIFIER Feldwert übereinstimmt, der im SES_CONFIGURATION_DIAGNOSTIC_PAGEenthalten ist, bricht der Prozess der Gehäusedienste den Download-Mikrocodevorgang mit dem Status 0x80 ab.
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 aktuellen Generierungscode festgelegt ist, wird der Prozess der Gehäusedienste den Download-Mikrocodevorgang mit dem Status 0x80 abbrechen.
Mode
Gibt an, mit welchem Modus die Mikrocode heruntergeladen werden soll.
Wert | Bedeutung |
---|---|
|
Nachdem der letzte BEFEHL SEND DIAGNOSTIC eine Diagnoseseite "Microcode Control herunterladen" an die Unterklosur übermittelt hat, muss der Prozess der Gehäusedienste das vollständige Mikrocodebild (z. B. einen herstellerspezifischen Prüfsumme) überprüfen und das neue Mikrocodebild in nichtvolatilem Speicher speichern.
Wenn im Mikrocodebild oder im Speichervorgang keine Fehler auftreten, führt der Prozess der Gehäusedienste eine der folgenden Aktionen aus:
|
|
Nach Abschluss des letzten SEND-DIAGNOSEbefehls, der eine SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE an die Unterklosur liefert, überprüft der Prozess der Gehäusedienste das vollständige Mikrocodebild (z. B. führen Sie eine herstellerspezifische Prüfsumme aus), speichern Sie das neue Mikrocodebild in nichtvolatilem Speicher (z. B. Flash-ROM) und verzögern die Aktivierung der neuen Mikrocode.
Wenn es keine Fehler im Mikrocodebild oder im Speichervorgang gibt, legt der Prozess der Gehäusedienste das Feld Status in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR auf 0x13 im SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGEfest, und aktivieren Sie den neuen Mikrocode nach folgendem:
|
|
Nachdem der BEFEHL SEND DIAGNOSTIC diesen Modus angegeben hat, aktiviert der Prozess der Gehäusedienste gegebenenfalls das verzögerte Mikrocodebild. |
|
Reserviert für die zukünftige Verwendung. |
Reserved[2]
Reserviert für die zukünftige Verwendung.
BufferID
Gibt einen bestimmten Puffer innerhalb des Gehäusediensteprozesses an, um das Mikrocodeimage zu empfangen. Der Prozess der Gehäusedienste weist lieferantenspezifische Puffer-ID-Codes Puffern zu (z. B. kann das Hauptfirmwareimage in Puffer 00h gespeichert werden, und ein Sicherungsfirmwareimage kann im Puffer 01h gespeichert werden). Der Prozess der Gehäusedienste unterstützt einen Puffer-ID-Wert von 00h. Wenn mehr als ein Puffer unterstützt wird, muss der Gehäusedienstprozess fortlaufend zusätzliche Puffer-ID-Codes zuweisen, beginnend mit 01h. Wenn der Prozess der Gehäusedienste einen nicht unterstützten Puffer-ID-Code empfängt, wird der Download-Mikrocodevorgang 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 Mikrocodedaten in Vielfachen von vier geschrieben werden. Der Prozess der Gehäusedienste erfordert möglicherweise, dass dieses Feld in aufeinander folgenden SEND DIAGNOSTIC-Befehlen fortlaufend zunimmt.
ImageLength[4]
Gibt die Gesamtanzahl der Bytes im Mikrocodebild an, die die Anwendung an die angegebene BufferID-senden möchte.
DataLength[4]
Gibt die Länge von Datain Byte an.
Data[ANYSIZE_ARRAY]
Enthält einen Teil des herstellerspezifischen Mikrocodeimages.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows 10, Version 1709 und neueren Versionen von Windows. |
Header- | scsi.h (include Minitape.h, Storport.h) |