windows-nt/Source/XPSP1/NT/public/ddk/inc/fltsafe.h
2020-09-26 16:20:57 +08:00

27 lines
521 B
C

// fltsafe.h
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// FLOATSAFE
//
// Saves floating point state on construction and restores on destruction.
//
struct FLOATSAFE
{
KFLOATING_SAVE FloatSave;
NTSTATUS ntStatus;
FLOATSAFE::FLOATSAFE(void)
{
ntStatus = KeSaveFloatingPointState(&FloatSave);
}
FLOATSAFE::~FLOATSAFE(void)
{
if (NT_SUCCESS(ntStatus))
{
KeRestoreFloatingPointState(&FloatSave);
}
}
};