Bagikan melalui


Fungsi EngSaveFloatingPointState (winddi.h)

Fungsi EngSaveFloatingPointState menyimpan status titik mengambang kernel Windows 2000 (dan yang lebih baru) saat ini.

Sintaks

ULONG EngSaveFloatingPointState(
            VOID  *pBuffer,
  [in, out] ULONG cjBufferSize
);

Parameter

pBuffer

Penunjuk ke buffer yang menerima status floating-point. Buffer ini harus diinisialisasi nol, dan harus dalam memori yang tidak di-halaman.

[in, out] cjBufferSize

Menentukan ukuran, dalam byte, dari buffer tempat pBuffer menunjuk.

Menampilkan nilai

Jika pBuffer bukan NULL, EngSaveFloatingPointState mengembalikan TRUE jika status berhasil disimpan. Ini mengembalikan FALSE jika buffer yang ditentukan terlalu kecil atau status tidak dapat disimpan.

Jika pBufferadalah NULL atau cjBufferSize adalah nol, EngSaveFloatingPointState mengembalikan ukuran buffer yang diperlukan untuk menyimpan status floating-point. Jika nilai yang dikembalikan adalah nol, prosesor tidak memiliki kemampuan floating-point perangkat keras. Dalam hal ini, driver tidak boleh menggunakan instruksi floating-point apa pun.

Keterangan

Driver harus menyimpan status floating-point kernel saat ini sebelum menggunakan instruksi perangkat keras floating-point. Pada sistem arsitektur Intel, ini memungkinkan penggunaan instruksi MMX jika didukung oleh prosesor. Driver yang tidak menggunakan EngSaveFloatingPointState dan EngRestoreFloatingPointState dengan benar saat menggunakan perangkat keras floating-point atau MMX akan menyebabkan kerusakan titik mengambang acak atau MMX dalam aplikasi panggilan.

Pada setiap panggilan ke driver, driver harus memanggil EngSaveFloatingPointState sekali untuk mempertahankan status kernel sebelum menggunakan operasi floating-point atau MMX. Ini juga harus memanggil EngRestoreFloatingPointState sekali setelah semua operasi floating-point atau MMX selesai untuk mengatur ulang status kernel.

GDI secara otomatis menyimpan status floating-point untuk setiap panggilan ke rutinitas DrvEscape driver ketika pelarian OPENGL_CMD, OPENGL_GETINFO, atau MCDFUNCS.

Persyaratan

   
Klien minimum yang didukung Tersedia di Windows 2000 dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Universal
Header winddi.h (termasuk Winddi.h)
Pustaka Win32k.lib
DLL Win32k.sys

Lihat juga

DrvEscape

EngRestoreFloatingPointState