Closed x0a closed 5 years ago
It should send exactly what the API does. If the API works but your implementation doesn't, there should be some mistake in the port.
As for what the driver does, I don't recall now from top of my head exactly, I'd need to check it out, but AFAIR, it had to do with some internal Windows behavior when there was a need to handle both 32 and 64 bit applications from a 64 bit driver.
Notice the README states that distribution of binaries for free applications are OK only if communication happens solely by use of the official library.
I'm trying to port the following code to Rust. https://github.com/oblitum/Interception/blob/513556e660893ca294b2e287143abb40a9170bb3/library/interception.c#L55-L76
And have something like the following:
The driver happily accepts the event handle, overwrites my string buffer asking for hardware ID, accepts my "SET_FILTER" request; but it will not actually trigger the event when I WaitForMultipleObjects, with the event handles for 10 keyboards. It will timeout.
My question is, what exactly does the driver do with the handle provided with IOCTL_SET_EVENT, so I know what to send?