Fungsi KeRestoreFloatingPointState (wdm.h)

Rutinitas KeRestoreFloatingPointState memulihkan konteks floating-point nonvolatile yang disimpan oleh panggilan sebelumnya ke KeSaveFloatingPointState.

Sintaks

NTSTATUS KeRestoreFloatingPointState(
  [in] PKFLOATING_SAVE FloatSave
);

Parameter

[in] FloatSave

Penunjuk ke struktur KFLOATING_SAVE yang diteruskan dalam panggilan sebelumnya ke KeSaveFloatingPointState.

Nilai kembali

KeRestoreFloatingPointState mengembalikan STATUS_SUCCESS.

Keterangan

KeRestoreFloatingPointState adalah timbal balik dari KeSaveFloatingPointState.

Rutinitas apa pun yang memanggil KeSaveFloatingPointState harus memanggil KeRestoreFloatingPointState sebelum rutin mengembalikan kontrol, dan harus berjalan di IRQL yang sama dengan panggilan sebelumnya ke KeSaveFloatingPointState terjadi. Kegagalan untuk memenuhi salah satu kondisi ini menyebabkan pemeriksaan bug sistem.

Kode driver mode kernel harus memastikan bahwa panggilan ke KeSaveFloatingPointState dan KeRestoreFloatingPointState ditumpuk dengan benar. Ini diperlukan agar, di setiap tingkat bersarang, status yang dipulihkan oleh panggilan KeRestoreFloatingPointState adalah status yang sama yang disimpan oleh panggilan KeSaveFloatingPointState yang sesuai. Untuk memastikan penumpasan yang tepat, kode driver mode kernel harus mengikuti aturan berikut:

  • Panggilan KeRestoreFloatingPointState yang memulihkan status tersimpan harus berjalan pada IRQL yang sama dengan panggilan KeSaveFloatingPointState yang menyimpan status.
  • Jika sepasang panggilan KeSaveFloatingPointState dan KeRestoreFloatingPointState ditumpuk dalam sepasang panggilan KeSaveFloatingPointState dan KeRestoreFloatingPointState , IRQL untuk panggilan berlapis tidak boleh lebih rendah dari IRQL untuk panggilan di sekitarnya.
  • Biasanya, struktur KFLOATING_SAVE yang dialokasikan penelepon yang berisi status yang disimpan oleh KeSaveFloatingPointState berada di tumpukan. Tumpukan secara alami mempertahankan bersarangnya informasi status yang disimpan. Jika kode driver menyimpan status di lokasi selain tumpukan, penulis driver harus berhati-hati untuk mempertahankan penumpukan panggilan KeSaveFloatingPointState dan KeRestoreFloatingPointState .
  • Panggilan KeRestoreFloatingPointState yang memulihkan status tersimpan harus berjalan di utas yang sama dengan panggilan KeSaveFloatingPointState yang menyimpan status.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (lihat bagian Keterangan)

Lihat juga

KFLOATING_SAVE

KeSaveFloatingPointState