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 end with 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 IRPs. You might, therefore, want to
skim this chapter and refer back to it while you're reading later chapters.