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.