NT Special Pool broken in NT 4.0 SP 6?

I’ve discovered that the NT Special Pool is essentially broken in NT 4.0 SP
6. It seems to work fine in NT 4.0 SP 4 and in Windows 2000. I’ve been
working with Microsoft Premier support on this, and he has confirmed my
discoveries on his system.

The way that it is broken is that it will attempt to allocate from the
special pool, but nearly all (95% or so) of allocations will be rejected by
the special pool (and then allocated from the normal pool, so no functional
difference can be detected), allegedly because there is no non-paged memory.
However, the same systems running NT 4.0 SP 4 or Windows 2000 behave
correctly, with most of the allocations coming from the special pool.

We’ve guessed that the documentation is messed up and perhaps there is some
other Registry key that must be set with SP 6 to enable the special pool?

Does anyone have any ideas? We’re basically stuck.

Thanks!


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> I’ve discovered that the NT Special Pool is essentially broken in NT 4.0
SP

  1. It seems to work fine in NT 4.0 SP 4 and in Windows 2000. I’ve been
    working with Microsoft Premier support on this, and he has confirmed my
    discoveries on his system.

Well, it took a lot of time, but we figured it out. It was incidentally
broken by the same issue that is described in Knowledge Base article
Q264450, and the method for getting the fixed NTOSKRNL is in that article.

Furthermore, we also discovered that it arbitrarily limits the size of the
special pool to 1/8 of the available memory. This seems to be true under
Windows 2000 as well. Since this is an arbitrary limit, you can actually
“fix” it by editing the NTOSKRNL variable _MiSpecialPagesNonPagedMaximum.
I’ve done this and find it very useful for forcing the entire system to use
the special pool.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com