struktur SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE (minitape.h)

Struktur SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE berisi gambar kode mikro spesifik vendor (yaitu, firmware) untuk digunakan oleh proses layanan penutup.

Sintaks

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;

Anggota

PageCode

Menentukan halaman diagnostik yang dikirim atau diminta berdasarkan nilai . Untuk halaman diagnostik Kontrol Microcode, nilainya harus 0x0E.

SubEnclosureId

Menentukan sub penutup tempat klien aplikasi mengirim gambar kode mikro. Jika nilai tidak cocok dengan nilai bidang SUBENCLOSURE_IDENTIFIER yang valid yang ditemukan dalam SES_CONFIGURATION_DIAGNOSTIC_PAGE, maka proses layanan penutup harus membatalkan operasi pengunduhan kode mikro dengan status 0x80.

PageLength[2]

Menentukan jumlah byte yang mengikuti di halaman diagnostik.

ExpectedGenerationCode[4]

Menentukan nilai kode pembuatan yang diharapkan. Jika parameter ini tidak diatur ke kode pembuatan saat ini, maka proses layanan penutup harus membatalkan operasi pengunduhan kode mikro dengan status 0x80.

Mode

Menentukan mode mana yang akan diunduh dengan kode mikro.

Nilai Makna
Mengunduh microcode dengan offset, menyimpan, dan mengaktifkan
0x07
Setelah perintah KIRIM DIAGNOSTIK terakhir mengirimkan halaman diagnostik Unduh Kontrol Mikrokode ke sub-penutup selesai, proses layanan enclosure harus memverifikasi gambar mikrokode lengkap (misalnya, melakukan checksum khusus vendor) dan menyimpan gambar microcode baru ke dalam penyimpanan nonvolatile.

Jika tidak ada kesalahan dalam gambar kode mikro atau dalam operasi penyimpanan, maka proses layanan penutup harus melakukan salah satu tindakan berikut:

Unduh kode mikro dengan offset, simpan, dan tunda aktifkan
0x0E
Setelah perintah KIRIM DIAGNOSTIK terakhir yang mengirimkan SES_DOWNLOAD_MICROCODE_CONTROL_DIAGNOSTIC_PAGE ke sub-penutup selesai, proses layanan penutup harus memverifikasi gambar mikrokode lengkap (misalnya, melakukan checksum khusus vendor), menyimpan gambar mikrokode baru ke penyimpanan nonvolatile (misalnya, flash ROM), dan menangguhkan aktivasi mikrokode baru.

Jika tidak ada kesalahan dalam gambar kode mikro atau dalam operasi penyimpanan, maka proses layanan penutup harus mengatur bidang Status di SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR ke 0x13 di SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE, jika diminta, dan mengaktifkan kode mikro baru setelah:

  • Memproses struktur ini dengan bidang Mode diatur ke 0x0F (yaitu, Aktifkan kode mikro yang ditangguhkan)
  • Daya menyala
  • Reset keras
Aktifkan kode mikro yang ditangguhkan
0x0F
Setelah perintah KIRIM DIAGNOSTIK yang menentukan mode ini selesai, proses layanan penutup harus mengaktifkan gambar mikrokode yang ditangguhkan, jika ada.
Dicadangkan
Semua nilai lainnya
Disiapkan untuk penggunaan masa mendatang.

Reserved[2]

Disiapkan untuk penggunaan masa mendatang.

BufferID

Menentukan buffer tertentu dalam proses layanan penutup untuk menerima gambar kode mikro. Proses layanan penutup menetapkan kode ID buffer khusus vendor ke buffer (misalnya, gambar firmware utama dapat disimpan dalam buffer 00h dan gambar firmware cadangan dapat disimpan di buffer 01h). Proses layanan penutup harus mendukung nilai ID buffer 00h. Jika lebih dari satu buffer didukung, maka proses layanan penutup harus menetapkan kode ID buffer tambahan secara berdekatan, dimulai dengan 01h. Jika proses layanan penutup menerima kode ID buffer yang tidak didukung, maka itu akan membatalkan operasi unduhan kode mikro dan mengatur bidang Status di SES_DOWNLOAD_MICROCODE_STATUS_DESCRIPTOR ke 0x80 dalam struktur SES_DOWNLOAD_MICROCODE_STATUS_DIAGNOSTIC_PAGE .

BufferOffset[4]

Menentukan offset dalam byte dalam buffer tempat data kode mikro ditulis dalam kelipatan empat. Proses layanan penutup mungkin mengharuskan bidang ini terus meningkat dalam perintah KIRIM DIAGNOSTIK berturut-turut.

ImageLength[4]

menentukan jumlah total byte dalam gambar kode mikro yang ingin dikirim aplikasi ke BufferID yang ditentukan.

DataLength[4]

Menentukan panjang Data, dalam byte.

Data[ANYSIZE_ARRAY]

Berisi bagian dari gambar mikrokode khusus vendor.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows 10, versi 1709, dan versi Windows yang lebih baru.
Header minitape.h (termasuk Minitape.h, Storport.h)