Allocating Additional IRPs

There are some situations where an intermediate driver needs to allocate additional IRPs to send to another driver. For example, the initialization code in one driver might want to query the capabilities of a lower-level driver by issuing an IOCTL request. An example filter driver that implements this strategy is listed later in this chapter.

As another example, a fault-tolerant disk driver, implemented as an intermediate driver, might allocate an additional IRP to send to a second (mirror) driver. This second IRP would mirror the original request.

Yet a third example occurs when a higher-level driver exposes an abstract command to a client. The command itself is implemented through a series of lower-level calls, each ...

Get Windows® 2000 Device Driver Book: A Guide for Programmers, Second Edition, The now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.