From c55d1bfd01147fa014ac07d4b03ef3cad8427ae6 Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Thu, 8 Apr 2021 02:30:01 -0400 Subject: optimize a bit/refactor modify --- driver/driver.cpp | 33 +++++++++++++-------------------- driver/driver.vcxproj | 12 ++++++++---- 2 files changed, 21 insertions(+), 24 deletions(-) (limited to 'driver') diff --git a/driver/driver.cpp b/driver/driver.cpp index fa2415d..feace77 100644 --- a/driver/driver.cpp +++ b/driver/driver.cpp @@ -23,6 +23,7 @@ struct { extern "C" PULONG InitSafeBootMode; +__declspec(guard(ignore)) VOID RawaccelCallback( IN PDEVICE_OBJECT DeviceObject, @@ -56,26 +57,18 @@ Arguments: auto num_packets = InputDataEnd - InputDataStart; - bool any = num_packets > 0; - bool rel_move = !(InputDataStart->Flags & MOUSE_MOVE_ABSOLUTE); - bool dev_match = global.args.device_id[0] == 0 || - global.args.ignore == - bool(wcsncmp(devExt->dev_id, global.args.device_id, ra::MAX_DEV_ID_LEN)); - - if (any && rel_move && dev_match) { - milliseconds time; - - if (global.args.time_min == global.args.time_max) { - time = global.args.time_min; - } - else { - counter_t now = KeQueryPerformanceCounter(NULL).QuadPart; - counter_t ticks = now - devExt->counter; - devExt->counter = now; - milliseconds t = ticks * global.tick_interval / num_packets; - time = ra::clampsd(t, global.args.time_min, global.args.time_max); - } - + if (num_packets > 0 && + !(InputDataStart->Flags & MOUSE_MOVE_ABSOLUTE) && + (global.args.device_id[0] == 0 || + bool(wcsncmp(devExt->dev_id, global.args.device_id, ra::MAX_DEV_ID_LEN)) == + global.args.ignore)) { + counter_t now = KeQueryPerformanceCounter(NULL).QuadPart; + counter_t ticks = now - devExt->counter; + devExt->counter = now; + milliseconds raw_elapsed = ticks * global.tick_interval; + milliseconds time = ra::clampsd(raw_elapsed / num_packets, + global.args.time_min, + global.args.time_max); auto it = InputDataStart; do { if (it->LastX || it->LastY) { diff --git a/driver/driver.vcxproj b/driver/driver.vcxproj index 9034680..c2e4629 100644 --- a/driver/driver.vcxproj +++ b/driver/driver.vcxproj @@ -30,6 +30,7 @@ Driver true Spectre + Spectre Windows7 @@ -38,6 +39,7 @@ KMDF WindowsKernelModeDriver10.0 Driver + Spectre @@ -74,18 +76,18 @@ true StdCall - AssemblyAndSourceCode + AssemblyCode false false $(IntDir) MaxSpeed AnySuitable true - Speed + Neither false true Guard - Precise + Fast @@ -114,9 +116,11 @@ true - Precise + Fast StdCall MaxSpeed + Guard + true %(AdditionalLibraryDirectories) -- cgit v1.2.3