An I/O request can be intended for any:
IO request occurs per block
I/O operations issued to a driver on behalf of the application.
I/O requests are destined to a device
I/O request can be synchronous or asynchronous
The location of the needed data is given via the offset.
Example: “retrieve 8 block of data starting at offset 8100”.
See IO - Scheduling (disk scheduling)
read and write system call
The I/O request packet (IRP) is where the I/O system stores information it needs to process an I/O request. When a thread calls an I/O API, the I/O manager constructs an IRP to represent the operation as it progresses through the I/O system.
ie CPU