Just curious, in case I decide to use this in the future, or for other people to see on this list.
If the user calls DeviceIoControl with both an input and an output buffer, how is the driver to know which is which?
The IRP should have an MDL for the user buffer. If the caller actually has only an input or an output buffer, the MDL would point to that one buffer. If there are two buffers, then I expect a chain of two MDLs. Is this correct, and which MDL is the input and which MDL is the output?
I looked for an answer in Windows Internals, both 6th and 7th editions. If the answer is actually in there, please let me know.