Fungsi KeSaveExtendedProcessorState (wdm.h)

Rutinitas KeSaveExtendedProcessorState menyimpan informasi status prosesor yang diperluas.

Sintaks

NTSTATUS KeSaveExtendedProcessorState(
  [in]  ULONG64      Mask,
  [out] PXSTATE_SAVE XStateSave
);

Parameter

[in] Mask

Masker fitur 64-bit. Bit dalam masker ini mengidentifikasi status fitur prosesor yang diperluas untuk disimpan. Jika bit masker adalah satu, rutin menyimpan status fitur yang diidentifikasi oleh bit ini. Jika bit masker adalah nol, status untuk fitur yang sesuai tidak disimpan. Masker ini tidak boleh mengidentifikasi fitur prosesor yang diperluas yang belum diaktifkan oleh sistem operasi. Untuk mendapatkan topeng fitur yang diaktifkan, panggil rutinitas RtlGetEnabledExtendedFeatures .

Penelepon dapat mengatur parameter ini ke bitwise OR dari satu atau beberapa bit bendera XSTATE_MASK_XXX berikut:

Nilai Makna
XSTATE_MASK_LEGACY_FLOATING_POINT Ekstensi floating-point (x87/MMX).
XSTATE_MASK_LEGACY_SSE Ekstensi SIMD streaming (SSE).
XSTATE_MASK_LEGACY Ekstensi x87/MMX dan SSE.
XSTATE_MASK_GSSE Ekstensi SSE Intel Sandy Bridge (sebelumnya Gesher).
XSTATE_MASK_AVX512 Ekstensi AVX-512
XSTATE_MASK_MPX Ekstensi MPX
XSTATE_MASK_AMX_TILE_CONFIG Ekstensi AMX (konfigurasi)
XSTATE_MASK_AMX_TILE_DATA Ekstensi AMX (data)

[out] XStateSave

Penunjuk ke buffer yang dialokasikan pemanggil tempat rutin menulis struktur XSTATE_SAVE . Struktur ini berisi informasi status yang disimpan untuk fitur prosesor yang diperluas yang ditunjukkan oleh parameter Mask . Buffer harus cukup besar untuk memuat struktur ini.

Nilai kembali

KeSaveExtendedProcessorState mengembalikan STATUS_SUCCESS jika panggilan berhasil. Kemungkinan nilai pengembalian kesalahan meliputi yang berikut ini:

Menampilkan kode Deskripsi
STATUS_INSUFFICIENT_RESOURCES
Operasi alokasi memori gagal.

Keterangan

Pada prosesor berbasis x86 yang mendukung instruksi XSAVE dan XRSTOR, instruksi ini menyediakan mekanisme yang fleksibel untuk menyimpan dan memulihkan informasi status prosesor yang diperluas. KeSaveExtendedProcessorState menggunakan instruksi ini jika tersedia.

Untuk memulihkan status prosesor yang diperluas yang disimpan oleh KeSaveExtendedProcessorState, panggil rutinitas KeRestoreExtendedProcessorState .

Parameter Mask menentukan fitur prosesor yang diperluas yang statusnya akan disimpan. Panggilan KeRestoreExtendedProcessorState hanya memulihkan status prosesor yang diperluas yang disimpan oleh panggilan KeSaveExtendedProcessorState yang menyimpan status.

Kode mode kernel harus menyimpan status fitur prosesor yang diperluas sebelum menggunakan fitur tersebut, dan harus memulihkan status sebelum keluar.

Rutinitas layanan interupsi (ISR) berjalan di bawah batasan waktu yang parah yang biasanya mencegahnya menggunakan fitur prosesor yang diperluas. Namun, ISR dapat menjadwalkan panggilan prosedur yang ditangguhkan (DPC) yang menggunakan satu atau beberapa fitur prosesor yang diperluas. Rutinitas DPC harus menyimpan dan memulihkan status fitur yang diperluas untuk mempertahankan konteks program yang terganggu di yang ruang alamat prosesnya berjalan rutin.

Rutinitas KeSaveFloatingPointState dan KeRestoreFloatingPointState menyimpan dan memulihkan hanya status floating-point (register x87/MMX) dan status SSE.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows 7 dan versi Windows yang lebih baru.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Lihat juga

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE