SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// minitape.h

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;
View the official Windows Driver Kit DDI reference
// scsi.h

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;
View the official Windows Driver Kit DDI reference
// storport.h

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;
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-minitape-_ses_download_microcode_control_diagnostic_page)

_SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE structure (minitape.h)

Description

The SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE structure contains a vendor specific microcode (i.e., firmware) image for use by the enclosure services process.

Members

PageCode

Specifies the diagnostic page being sent or requested based on the value. For a Microcode Control diagnostic page, the value should be 0x0E.

SubEnclosureId

Specifies the sub enclosure to which the application client is sending the microcode image. If the value does not match a valid SUBENCLOSURE_IDENTIFIER field value found in the SES_CONFIGURATION_DIAGNOSTIC_PAGE, then the enclosure services process shall abort the download microcode operation with a status of 0x80.

PageLength

Specifies the number of bytes that follow in the diagnostic page.

ExpectedGenerationCode

Specifies the expected value of the generation code. If this parameter is not set to the current generation code, then the enclosure services process shall abort the download microcode operation with a status of 0x80.

Mode

Specifies which mode to download the microcode with.

Value Meaning
Download microcode with offsets, save, and activate

0x07
After the last SEND DIAGNOSTIC command delivers a Download Microcode Control diagnostic page to the subenclosure completes, the enclosure services process shall verify the complete microcode image (e.g., perform a vendor specific checksum) and save the new microcode image into nonvolatile storage.

If there are no errors in the microcode image or in the save operation, then the enclosure services process shall perform one of the following actions:

* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x10, if requested, and activate the new microcode image after either returning the Download Microcode Status diagnostic page, power on, or for standalone enclosure services processes, a hard reset.
* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x11, if requested, and for standalone enclosure services processes only, activate the new microcode image after either power on or hard reset.
* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x12, if requested, and activate the new microcode image after power on.
Download microcode with offsets, save, and defer activate

0x0E
After the last SEND DIAGNOSTIC command delivering a SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE to the subenclosure completes, the enclosure services process shall verify the complete microcode image (e.g., perform a vendor specific checksum), save the new microcode image into nonvolatile storage (e.g., flash ROM), and defer activation of the new microcode.

If there are no errors in the microcode image or in the save operation, then the enclosure services process shall set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x13 in the SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, if requested, and activate the new microcode after either:

* Processing this structure with the Mode field set to 0x0F (i.e., Activate deferred microcode)
* A power on
* A hard reset
Activate deferred microcode

0x0F
After the SEND DIAGNOSTIC command specifying this mode completes, the enclosure services process shall activate the deferred microcode image, if any.
Reserved

All other values
Reserved for future use.

Reserved

Reserved for future use.

BufferID

Specifies a specific buffer within the enclosure services process to receive the microcode image. The enclosure services process assigns vendor specific buffer ID codes to buffers (e.g., the main firmware image may be stored in buffer 00h and a backup firmware image may be stored in buffer 01h). The enclosure services process shall support a buffer ID value of 00h. If more than one buffer is supported, then the enclosure services process shall assign additional buffer ID codes contiguously, beginning with 01h. If the enclosure services process receives an unsupported buffer ID code, then it shall abort the download microcode operation and set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x80 in the SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE structure.

BufferOffset

Specifies the offset in bytes within the buffer to which the microcode data is written in multiples of four. The enclosure services process may require that this field be contiguously increasing in consecutive SEND DIAGNOSTIC commands.

ImageLength

specifies the total number of bytes in the microcode image the application intends to send to the specified BufferID.

DataLength

Specifies the length of Data, in bytes.

Data

Contains part of the vendor specific microcode image.


Windows Driver Kit DDI reference (ns-scsi-_ses_download_microcode_control_diagnostic_page)

_SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE structure (scsi.h)

Description

The SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE structure contains a vendor specific microcode (i.e., firmware) image for use by the enclosure services process.

Members

PageCode

Specifies the diagnostic page being sent or requested based on the value. For a Microcode Control diagnostic page, the value should be 0x0E.

SubEnclosureId

Specifies the sub enclosure to which the application client is sending the microcode image. If the value does not match a valid SUBENCLOSURE_IDENTIFIER field value found in the SES_CONFIGURATION_DIAGNOSTIC_PAGE, then the enclosure services process shall abort the download microcode operation with a status of 0x80.

PageLength

Specifies the number of bytes that follow in the diagnostic page.

ExpectedGenerationCode

Specifies the expected value of the generation code. If this parameter is not set to the current generation code, then the enclosure services process shall abort the download microcode operation with a status of 0x80.

Mode

Specifies which mode to download the microcode with.

Value Meaning
Download microcode with offsets, save, and activate

0x07
After the last SEND DIAGNOSTIC command delivers a Download Microcode Control diagnostic page to the subenclosure completes, the enclosure services process shall verify the complete microcode image (e.g., perform a vendor specific checksum) and save the new microcode image into nonvolatile storage.

If there are no errors in the microcode image or in the save operation, then the enclosure services process shall perform one of the following actions:

* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x10, if requested, and activate the new microcode image after either returning the Download Microcode Status diagnostic page, power on, or for standalone enclosure services processes, a hard reset.
* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x11, if requested, and for standalone enclosure services processes only, activate the new microcode image after either power on or hard reset.
* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x12, if requested, and activate the new microcode image after power on.
Download microcode with offsets, save, and defer activate

0x0E
After the last SEND DIAGNOSTIC command delivering a SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE to the subenclosure completes, the enclosure services process shall verify the complete microcode image (e.g., perform a vendor specific checksum), save the new microcode image into nonvolatile storage (e.g., flash ROM), and defer activation of the new microcode.

If there are no errors in the microcode image or in the save operation, then the enclosure services process shall set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x13 in the SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, if requested, and activate the new microcode after either:

* Processing this structure with the Mode field set to 0x0F (i.e., Activate deferred microcode)
* A power on
* A hard reset
Activate deferred microcode

0x0F
After the SEND DIAGNOSTIC command specifying this mode completes, the enclosure services process shall activate the deferred microcode image, if any.
Reserved

All other values
Reserved for future use.

Reserved

Reserved for future use.

BufferID

Specifies a specific buffer within the enclosure services process to receive the microcode image. The enclosure services process assigns vendor specific buffer ID codes to buffers (e.g., the main firmware image may be stored in buffer 00h and a backup firmware image may be stored in buffer 01h). The enclosure services process shall support a buffer ID value of 00h. If more than one buffer is supported, then the enclosure services process shall assign additional buffer ID codes contiguously, beginning with 01h. If the enclosure services process receives an unsupported buffer ID code, then it shall abort the download microcode operation and set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x80 in the SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE structure.

BufferOffset

Specifies the offset in bytes within the buffer to which the microcode data is written in multiples of four. The enclosure services process may require that this field be contiguously increasing in consecutive SEND DIAGNOSTIC commands.

ImageLength

specifies the total number of bytes in the microcode image the application intends to send to the specified BufferID.

DataLength

Specifies the length of Data, in bytes.

Data

Contains part of the vendor specific microcode image.


Windows Driver Kit DDI reference (ns-storport-_ses_download_microcode_control_diagnostic_page)

_SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE structure (storport.h)

Description

The SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE structure contains a vendor specific microcode (i.e., firmware) image for use by the enclosure services process.

Members

PageCode

Specifies the diagnostic page being sent or requested based on the value. For a Microcode Control diagnostic page, the value should be 0x0E.

SubEnclosureId

Specifies the sub enclosure to which the application client is sending the microcode image. If the value does not match a valid SUBENCLOSURE_IDENTIFIER field value found in the SES_CONFIGURATION_DIAGNOSTIC_PAGE, then the enclosure services process shall abort the download microcode operation with a status of 0x80.

PageLength

Specifies the number of bytes that follow in the diagnostic page.

ExpectedGenerationCode

Specifies the expected value of the generation code. If this parameter is not set to the current generation code, then the enclosure services process shall abort the download microcode operation with a status of 0x80.

Mode

Specifies which mode to download the microcode with.

Value Meaning
Download microcode with offsets, save, and activate

0x07
After the last SEND DIAGNOSTIC command delivers a Download Microcode Control diagnostic page to the subenclosure completes, the enclosure services process shall verify the complete microcode image (e.g., perform a vendor specific checksum) and save the new microcode image into nonvolatile storage.

If there are no errors in the microcode image or in the save operation, then the enclosure services process shall perform one of the following actions:

* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x10, if requested, and activate the new microcode image after either returning the Download Microcode Status diagnostic page, power on, or for standalone enclosure services processes, a hard reset.
* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x11, if requested, and for standalone enclosure services processes only, activate the new microcode image after either power on or hard reset.
* Set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x12, if requested, and activate the new microcode image after power on.
Download microcode with offsets, save, and defer activate

0x0E
After the last SEND DIAGNOSTIC command delivering a SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE to the subenclosure completes, the enclosure services process shall verify the complete microcode image (e.g., perform a vendor specific checksum), save the new microcode image into nonvolatile storage (e.g., flash ROM), and defer activation of the new microcode.

If there are no errors in the microcode image or in the save operation, then the enclosure services process shall set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x13 in the SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, if requested, and activate the new microcode after either:

* Processing this structure with the Mode field set to 0x0F (i.e., Activate deferred microcode)
* A power on
* A hard reset
Activate deferred microcode

0x0F
After the SEND DIAGNOSTIC command specifying this mode completes, the enclosure services process shall activate the deferred microcode image, if any.
Reserved

All other values
Reserved for future use.

Reserved

Reserved for future use.

BufferID

Specifies a specific buffer within the enclosure services process to receive the microcode image. The enclosure services process assigns vendor specific buffer ID codes to buffers (e.g., the main firmware image may be stored in buffer 00h and a backup firmware image may be stored in buffer 01h). The enclosure services process shall support a buffer ID value of 00h. If more than one buffer is supported, then the enclosure services process shall assign additional buffer ID codes contiguously, beginning with 01h. If the enclosure services process receives an unsupported buffer ID code, then it shall abort the download microcode operation and set the Status field in SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR to 0x80 in the SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE structure.

BufferOffset

Specifies the offset in bytes within the buffer to which the microcode data is written in multiples of four. The enclosure services process may require that this field be contiguously increasing in consecutive SEND DIAGNOSTIC commands.

ImageLength

specifies the total number of bytes in the microcode image the application intends to send to the specified BufferID.

DataLength

Specifies the length of Data, in bytes.

Data

Contains part of the vendor specific microcode image.