Processing Read and Write Requests

The most basic of I/O requests is to exchange data between a user buffer and a device. The I/O Manager presents a traditional read/write abstraction to requestors for such data transfers. The requests are presented to a driver in the form of an IRP with major function code of either IRP_MJ_READ or IRP_MJ_WRITE. Another field within the IRP specifies the address of the requestor's buffer. Whether the buffer address is a direct virtual address or an intermediate nonpaged pool buffer allocated and maintained by the I/O Manager is determined by the device object's Flags field. Regardless, it is the responsibility of the read and write Dispatch routines to transfer data between the buffer and the actual device for ...

Get Windows® 2000 Device Driver Book: A Guide for Programmers, Second Edition, The 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.