Fungsi KeSaveFloatingPointState (wdm.h)
Rutinitas KeSaveFloatingPointState menyimpan konteks floating-point nonvolatile sehingga pemanggil dapat melakukan operasi floating-point.
Sintaks
NTSTATUS KeSaveFloatingPointState(
[out] PKFLOATING_SAVE FloatSave
);
Parameter
[out] FloatSave
Pointer ke buffer residen yang dialokasikan penelepon, yang harus setidaknya ukuranof(KFLOATING_SAVE).
Nilai kembali
KeSaveFloatingPointState mengembalikan STATUS_SUCCESS jika menyimpan konteks floating-point utas saat ini dan menyiapkan konteks floating-point baru untuk pemanggil. Jika tidak, ia mengembalikan salah satu kode status kesalahan berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Sistem dikonfigurasi untuk menggunakan emulasi floating-point, daripada melakukan operasi floating-point dalam prosesor. |
|
KeSaveFloatingPointState tidak dapat mengalokasikan memori yang cukup untuk menyimpan konteks floating-point utas saat ini. |
Keterangan
Panggilan yang berhasil ke KeSaveFloatingPointState memungkinkan pemanggil untuk melakukan operasi floating-point sendiri, tetapi pemanggil tersebut harus memulihkan konteks floating-point nonvolatile sebelumnya segera setelah operasi floating-point-nya dilakukan. Rutinitas apa pun yang memanggil KeSaveFloatingPointState harus memanggil KeRestoreFloatingPointState sebelum rutin mengembalikan kontrol.
Jika panggilan ke KeSaveFloatingPointState berhasil, data di FloatSave buram ke pemanggil. Pemanggil tidak boleh melepaskan memori yang dialokasikan untuk data ini sampai setelah panggilan ke KeRestoreFloatingPointState.
Di Windows Vista dan versi Windows yang lebih lama, panggilan KeSaveFloatingPointState dan panggilan KeRestoreFloatingPointState yang sesuai harus terjadi di wilayah yang dijaga. Artinya, rutinitas KeEnterGuardedRegion harus dipanggil sebelum KeSaveFloatingPointState dipanggil, dan rutinitas KeLeaveGuardedRegion harus dipanggil setelah KeRestoreFloatingPointState dipanggil. Tidak ada persyaratan seperti itu di Windows 7 dan versi Windows yang lebih baru.
Untuk alasan performa, driver harus menghindari melakukan operasi floating-point kecuali benar-benar diperlukan. Overhead penyimpanan dan pemulihan status floating-point nonvolatile utas saat ini menurunkan performa driver apa pun yang melakukan operasi floating-point.
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 |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk