
struct FLOATSAFE
{
   KFLOATING_SAVE FloatSave;
   NTSTATUS ntStatus;

   FLOATSAFE::FLOATSAFE(void)
   {
     ntStatus = KeSaveFloatingPointState(&FloatSave);
   }

   FLOATSAFE::~FLOATSAFE(void)
   {
     if (NT_SUCCESS(ntStatus))
     {
        KeRestoreFloatingPointState(&FloatSave);
     }
   }
};
