#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