SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE-Struktur (scsi.h)
Die SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE-Struktur enthält ein herstellerspezifisches Microcodeimage (d. h. 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 werden.
SubEnclosureId
Gibt das Untergehäuse an, an das der Anwendungsclient das Microcodeimage sendet. Wenn der Wert nicht mit einem gültigen SUBENCLOSURE_IDENTIFIER Feldwert übereinstimmt, der in der SES_CONFIGURATION_DIAGNOSTIC_PAGE gefunden wurde, muss der Prozess der Gehäusedienste den Vorgang zum Herunterladen von Microcode mit einer status von 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 von 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 Enclosure Services-Prozess das vollständige Microcodeimage (z. B. eine herstellerspezifische Prüfsumme) und speichert das neue Microcodeimage in einem nicht flüchtigen Speicher.
Wenn im Mikrocodeimage oder im Speichervorgang keine Fehler auftreten, führt der Prozess der Gehäusedienste eine der folgenden Aktionen aus:
|
|
Nach Abschluss des letzten SEND DIAGNOSTIC-Befehls, der eine SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE an die Subenclosure übermittelt, muss der Enclosure Services-Prozess das vollständige Microcodeimage überprüfen (z. B. eine herstellerspezifische Prüfsumme ausführen), das neue Microcodeimage in einem nicht flüchtigen Speicher (z. B. Flash-ROM) speichern und die Aktivierung des neuen Mikrocodes zurückstellen.
Wenn im Mikrocodeimage oder im Speichervorgang keine Fehler auftreten, legt der Prozess der Gehäusedienste das Feld Status in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR auf 0x13 im SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE fest, falls erforderlich, und aktiviert den neuen Mikrocode nach folgendem:
|
|
Nachdem der Befehl SEND DIAGNOSTIC, der diesen Modus angibt, abgeschlossen ist, aktiviert der Enclosure Services-Prozess 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 Microcodeimage 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 in Puffer 01h gespeichert werden). Der Gehäusedienstprozess 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 von Microcode 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 Vielfaches von vier geschrieben werden. Für den Prozess der Gehäusedienste kann es erforderlich sein, dass dieses Feld in aufeinanderfolgenden SEND DIAGNOSTIC-Befehlen kontinuierlich erhöht wird.
ImageLength[4]
gibt die Gesamtanzahl von Bytes im Mikrocodeimage an, die die Anwendung an die angegebene BufferID senden möchte.
DataLength[4]
Gibt die Länge von 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 | scsi.h (einschließlich Minitape.h, Storport.h) |