I have a KMDF based upper HID Class filter driver, works fine, but when I am trying to write a request from my own application (through a side-band communication interface), I get the following error
0xc00000e8 - An access to a user buffer failed at an “expected” point in time. This code is defined since the caller does not want to accept STATUS_ACCESS_VIOLATION in its filter.
Any other info I need to provide for somebody to shed some light on this? Why would an upper filter on top of HIDClass wont be allowed to send down a request down the device?
Where is this error message coming from? STATUS_ACCESS_VIOLATION likely
means there’s something wrong with the buffer specified with the request.
How are you building the WDFREQUEST?
Probably the easiest way to debug this is to compare a working case with a
non-working case. Take a write that normally succeeds and dump the
underlying IRP:
!wdfrequest 2. !irp 1
Then do the same with your failing request. You should be able to spot some difference that will tell you why one fails and the other doesn’t.
Any other info I need to provide for somebody to shed some light on this? Why would an upper filter on top of HIDClass wont be allowed to send down a request down the device?