summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authora1xd <[email protected]>2020-10-07 05:17:24 -0400
committera1xd <[email protected]>2020-10-07 05:17:24 -0400
commitf7f598fef044c0f11169968070c41ae51dc6ade2 (patch)
treecb4da0cadf0dc67085832e0ca98f34c5dd3621f0 /driver
parentMerge pull request #31 from a1xd/fix-1.0.0 (diff)
downloadrawaccel-1.0.2.tar.xz
rawaccel-1.0.2.zip
Fixed anisotropy not loading correctly on savev1.0.2
Diffstat (limited to 'driver')
-rw-r--r--driver/driver.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/driver/driver.cpp b/driver/driver.cpp
index 5fa1dd1..778f3be 100644
--- a/driver/driver.cpp
+++ b/driver/driver.cpp
@@ -2,6 +2,9 @@
#include "driver.h"
+#define RA_READ CTL_CODE(0x8888, 0x888, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+#define RA_WRITE CTL_CODE(0x8888, 0x889, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#ifdef ALLOC_PRAGMA
#pragma alloc_text (INIT, DriverEntry)
#pragma alloc_text (PAGE, EvtDeviceAdd)
@@ -144,13 +147,13 @@ Return Value:
size_t size;
UNREFERENCED_PARAMETER(Queue);
- UNREFERENCED_PARAMETER(IoControlCode);
+
PAGED_CODE();
DebugPrint(("Ioctl received into filter control object.\n"));
- if (InputBufferLength == sizeof(ra::settings)) {
+ if (IoControlCode == RA_WRITE && InputBufferLength == sizeof(ra::settings)) {
LARGE_INTEGER interval;
interval.QuadPart = static_cast<LONGLONG>(ra::WRITE_DELAY) * -10000;
KeDelayExecutionThread(KernelMode, FALSE, &interval);
@@ -180,7 +183,7 @@ Return Value:
WdfRequestComplete(Request, STATUS_SUCCESS);
}
- else if (OutputBufferLength == sizeof(ra::settings)) {
+ else if (IoControlCode == RA_READ && OutputBufferLength == sizeof(ra::settings)) {
status = WdfRequestRetrieveOutputBuffer(
Request,
sizeof(ra::settings),