I'm writing a function driver for a USB device running on Win2K and WinXP. I'm using the WinXP DDK (but have been building with the Win2K Free Build environment). The tests are being run on XP Pro SP1. The driver 'works', so now I am running the driver verification tools. The problem is that I get a blue screen from the "Remove Driver" test in the "PnP Driver Test Tool", and the code indicates a failure to free some allocated block in the non-paged pool. I thought I could figure out which block is not being freed by looking at the tags.

My question is: Why can't I see the allocations I've made in my driver using Poolmon or the Pooltag utility? I tried allocating a dummy block of memory in my DriverEntry routine (and never free this), but I still can't see it even though the driver is actually running

pTestBlock = ExAllocatePoolWithTag( NonPagedPool, 32, 'XXXX')

But the 'XXXX' tag never appears in the display

Re: Pool Tag invisible? by Maxim

Maxim
Sat Feb 07 22:03:29 CST 2004

Set the bit 0x400 in GlobalFlag value in the registry. Otherwise, the pool
tags are ignored.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com


"nmrguy" <anonymous@discussions.microsoft.com> wrote in message
news:F7CBD7D9-237D-4B9C-A291-749991101857@microsoft.com...
> I'm writing a function driver for a USB device running on Win2K and WinXP.
I'm using the WinXP DDK (but have been building with the Win2K Free Build
environment). The tests are being run on XP Pro SP1. The driver 'works', so
now I am running the driver verification tools. The problem is that I get a
blue screen from the "Remove Driver" test in the "PnP Driver Test Tool", and
the code indicates a failure to free some allocated block in the non-paged
pool. I thought I could figure out which block is not being freed by looking
at the tags.
>
> My question is: Why can't I see the allocations I've made in my driver using
Poolmon or the Pooltag utility? I tried allocating a dummy block of memory in
my DriverEntry routine (and never free this), but I still can't see it even
though the driver is actually running:
>
> pTestBlock = ExAllocatePoolWithTag( NonPagedPool, 32, 'XXXX');
>
> But the 'XXXX' tag never appears in the display.
>
>
>



Re: Pool Tag invisible? by anonymous

anonymous
Mon Feb 09 12:16:11 CST 2004

OK, it is set already (via Global Flags utility). The pooltags for other things DO show up ok in Poolmon/Pooltag. What next?

Re: Pool Tag invisible? by anonymous

anonymous
Tue Feb 10 16:21:08 CST 2004

Aha! I discovered that turning off the Driver Verifier makes the tags visible. Perhaps the verifier intercepts the tags or reroutes them to the 'special pool' ?