I/O Transfer Types
Windows supports the following three data transfer mechanisms, also called I/O transfer types:
Buffered I/O operates on a copy of the user’s data.
Direct I/O directly accesses the user’s data through memory descriptor lists (MDLs) and kernel-mode pointers.
Neither buffered nor direct I/O—called "neither I/O” or METHOD_NEITHER—accesses the user’s data through user-mode pointers.
WDF drivers can support any of the three I/O types. However, drivers should avoid the use of neither I/O because of inherent difficulties in properly validating and using user-mode pointers.
For device I/O control requests, the I/O control code itself includes the transfer type, so a device’s IOCTLs can use any of the three transfer types and all of the IOCTLs ...
Get Developing Drivers with the Windows® Driver Foundation now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.