7.3.1 Storage Requirements for Driver-Managed Queues

Any NT driver that uses either an interlocked or supplemental device queue must provide storage for the necessary NT objects and resources.

If it uses either kind of queue, an NT driver must provide storage for the following:

NT drivers usually provide this storage in the device extensions of their device objects, but they can call ExAllocatePool with the PoolType parameter set to NonPagedPool to allocate storage or can provide storage in a controller extension if they use controller objects.

For more information about allocating pool memory, see Chapter 16. For more information about controller objects, see Chapter 3.