diff options
| author | a1xd <[email protected]> | 2020-10-07 05:17:24 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2020-10-07 05:17:24 -0400 |
| commit | f7f598fef044c0f11169968070c41ae51dc6ade2 (patch) | |
| tree | cb4da0cadf0dc67085832e0ca98f34c5dd3621f0 /driver/driver.cpp | |
| parent | Merge pull request #31 from a1xd/fix-1.0.0 (diff) | |
| download | rawaccel-1.0.2.tar.xz rawaccel-1.0.2.zip | |
Fixed anisotropy not loading correctly on savev1.0.2
Diffstat (limited to 'driver/driver.cpp')
| -rw-r--r-- | driver/driver.cpp | 9 |
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), |