Writing a Start I/O Routine

The remainder of this chapter discusses the development of a programmed I/O driver for a parallel port. For simplicity, this driver ignores many of the details that would have to be considered if writing a commercial driver.

Execution Context

The I/O manager calls the driver's Start I/O routine (described in Table 8.4) either when a Dispatch routine calls IoStartPacket (if the device was idle), or when some other part of the driver calls IoStartNextPacket. In either case, Start I/O runs at DISPATCH_LEVEL IRQL, so it must not do anything that causes a page fault.

What the Start I/O Routine Does

A driver's Start I/O routine is responsible for doing any function code-specific processing needed by the current IRP and ...

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.