16.4.3 Using Zone Buffers

NT drivers that set up zone buffers for fast allocation of fixed-size blocks (also called entries) should use that memory economically.

    NT driver writers who use the Ex..Zone routines should follow these design guidelines:

Note that an NT driver’s successful call to ExExtendZone or ExInterlockedExtendZone allocates nonpaged pool that remains allocated to the driver until the system is rebooted. Consequently, any NT driver that calls ExExtendZone or ExInterlockedExtendZone whenever its zone buffer becomes full (that is, all entries are currently allocated), can eventually run out of nonpaged pool. Such a driver also can put the system into a low-memory state such that all I/O throughput becomes very slow, including the “memory-hogging” driver’s.

For routine-specific information about the Ex..Zone routines, see the Kernel-Mode Driver Reference.