7.3.3 Queueing IRPs in Driver-Managed Queues

IRPs can be inserted into or removed from either kind of queue by calling the appropriate ExInterlocked..List or Ke..DeviceQueue support routine with the corresponding IRP-specific argument:

&Irp->Tail.Overlay.ListEntry

or

&Irp->Tail.Overlay.DeviceQueueEntry

NT drivers also can set up internal queues or buffers for driver-defined data structures, as mentioned in Chapter 6.