#if (NTDDI_VERSION >= NTDDI_WINXP) struct FLOATSAFE { KFLOATING_SAVE FloatSave; NTSTATUS ntStatus; FLOATSAFE::FLOATSAFE(void) { ntStatus = KeSaveFloatingPointState(&FloatSave); } FLOATSAFE::~FLOATSAFE(void) { if (NT_SUCCESS(ntStatus)) { KeRestoreFloatingPointState(&FloatSave); } } }; #endif