Chapter 5
The I/O Request Packet
The operating system uses a data structure known as an I/O request packet, or IRP, to communicate with a kernel-mode device driver. In this chapter, I ll discuss this important data structure and the means by which it s created, sent, processed, and ultimately destroyed. I ll include a discussion of the relatively complex subject of IRP cancellation.
This chapter is rather abstract, I m afraid, because I haven t yet talked about any of the concepts that surround specific types of I/O request packets (IRPs). You might, therefore, want to skim this chapter and refer back to it while you re reading later chapters. The last major section of this chapter contains a cookbook, if you will, that presents the bare-bones code for handling IRPs in eight different scenarios. You can use the cookbook without understanding all the theory that this chapter contains.