IoAllocateIrp

I noticed that IoAllocateIrp calls ExAllocatePoolWithTagPriority() with
Priority set to HighPoolPriority.

Does this mean to protect against a MUST_SUCCEED_POOL_EMPTY (41) bugcheck we
need to use exception handling around IoAllocateIrp calls?

I was under the impression that MS frowned upon using must succeed with
memory allocations.

Stanislaw

Where did you see this code ?

The normal path for IoAllocateIrp uses the regular ExAllocatePool call to
allocate memory (besides lookaside lists). The verifier calls
ExAllocatePoolWithTagPriority with HighPoolPrioritySpecialPoolOverrun to
ensure that the IRP comes from special pool. No where do we use
HighPoolPriority to allocate IRPs.


Nar Ganapathy
Windows Core OS group
This posting is provided “AS IS” with no warranties, and confers no rights.
“Stanislaw Kowalczyk” wrote in message
news:xxxxx@ntdev…
>
> I noticed that IoAllocateIrp calls ExAllocatePoolWithTagPriority() with
> Priority set to HighPoolPriority.
>
> Does this mean to protect against a MUST_SUCCEED_POOL_EMPTY (41) bugcheck
we
> need to use exception handling around IoAllocateIrp calls?
>
> I was under the impression that MS frowned upon using must succeed with
> memory allocations.
>
> Stanislaw
>
>
>
>

I saw this on a dump from QA, the machine had verifier enabled to monitor
our driver. The stack did not have our driver in it instead it was dmio.sys
that called IoAllocateIrp.

It was my understanding that Verifier revectored only monitored drivers not
the system as a whole, is this correct?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Nar Ganapathy [MS]
Sent: Tuesday, July 23, 2002 6:41 PM
To: NT Developers Interest List
Subject: [ntdev] Re: IoAllocateIrp

Where did you see this code ?

The normal path for IoAllocateIrp uses the regular ExAllocatePool call to
allocate memory (besides lookaside lists). The verifier calls
ExAllocatePoolWithTagPriority with HighPoolPrioritySpecialPoolOverrun to
ensure that the IRP comes from special pool. No where do we use
HighPoolPriority to allocate IRPs.


Nar Ganapathy
Windows Core OS group
This posting is provided “AS IS” with no warranties, and confers no rights.
“Stanislaw Kowalczyk” wrote in message
news:xxxxx@ntdev…
>
> I noticed that IoAllocateIrp calls ExAllocatePoolWithTagPriority() with
> Priority set to HighPoolPriority.
>
> Does this mean to protect against a MUST_SUCCEED_POOL_EMPTY (41) bugcheck
we
> need to use exception handling around IoAllocateIrp calls?
>
> I was under the impression that MS frowned upon using must succeed with
> memory allocations.
>
> Stanislaw
>
>
>
>


You are currently subscribed to ntdev as: xxxxx@relicore.com
To unsubscribe send a blank email to %%email.unsub%%

For some things like IRP tracking, we have to look at the whole system as we
will not be able to catch the problems otherwise. So we allocate all IRPs
from special pool if you turn on IO verifier.


Nar Ganapathy
Windows Core OS group
This posting is provided “AS IS” with no warranties, and confers no rights.
“Stanislaw Kowalczyk” wrote in message
news:xxxxx@ntdev…
>
> I saw this on a dump from QA, the machine had verifier enabled to monitor
> our driver. The stack did not have our driver in it instead it was
dmio.sys
> that called IoAllocateIrp.
>
> It was my understanding that Verifier revectored only monitored drivers
not
> the system as a whole, is this correct?
>
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Nar Ganapathy [MS]
> Sent: Tuesday, July 23, 2002 6:41 PM
> To: NT Developers Interest List
> Subject: [ntdev] Re: IoAllocateIrp
>
>
> Where did you see this code ?
>
> The normal path for IoAllocateIrp uses the regular ExAllocatePool call to
> allocate memory (besides lookaside lists). The verifier calls
> ExAllocatePoolWithTagPriority with HighPoolPrioritySpecialPoolOverrun to
> ensure that the IRP comes from special pool. No where do we use
> HighPoolPriority to allocate IRPs.
>
> –
> Nar Ganapathy
> Windows Core OS group
> This posting is provided “AS IS” with no warranties, and confers no
rights.
> “Stanislaw Kowalczyk” wrote in message
> news:xxxxx@ntdev…
> >
> > I noticed that IoAllocateIrp calls ExAllocatePoolWithTagPriority() with
> > Priority set to HighPoolPriority.
> >
> > Does this mean to protect against a MUST_SUCCEED_POOL_EMPTY (41)
bugcheck
> we
> > need to use exception handling around IoAllocateIrp calls?
> >
> > I was under the impression that MS frowned upon using must succeed with
> > memory allocations.
> >
> > Stanislaw
> >
> >
> >
> >
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@relicore.com
> To unsubscribe send a blank email to %%email.unsub%%
>
>
>
>

Thanks for the insight!

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Nar Ganapathy [MS]
Sent: Wednesday, July 24, 2002 12:53 PM
To: NT Developers Interest List
Subject: [ntdev] Re: IoAllocateIrp

For some things like IRP tracking, we have to look at the whole system as we
will not be able to catch the problems otherwise. So we allocate all IRPs
from special pool if you turn on IO verifier.


Nar Ganapathy
Windows Core OS group
This posting is provided “AS IS” with no warranties, and confers no rights.
“Stanislaw Kowalczyk” wrote in message
news:xxxxx@ntdev…
>
> I saw this on a dump from QA, the machine had verifier enabled to monitor
> our driver. The stack did not have our driver in it instead it was
dmio.sys
> that called IoAllocateIrp.
>
> It was my understanding that Verifier revectored only monitored drivers
not
> the system as a whole, is this correct?
>
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Nar Ganapathy [MS]
> Sent: Tuesday, July 23, 2002 6:41 PM
> To: NT Developers Interest List
> Subject: [ntdev] Re: IoAllocateIrp
>
>
> Where did you see this code ?
>
> The normal path for IoAllocateIrp uses the regular ExAllocatePool call to
> allocate memory (besides lookaside lists). The verifier calls
> ExAllocatePoolWithTagPriority with HighPoolPrioritySpecialPoolOverrun to
> ensure that the IRP comes from special pool. No where do we use
> HighPoolPriority to allocate IRPs.
>
> –
> Nar Ganapathy
> Windows Core OS group
> This posting is provided “AS IS” with no warranties, and confers no
rights.
> “Stanislaw Kowalczyk” wrote in message
> news:xxxxx@ntdev…
> >
> > I noticed that IoAllocateIrp calls ExAllocatePoolWithTagPriority() with
> > Priority set to HighPoolPriority.
> >
> > Does this mean to protect against a MUST_SUCCEED_POOL_EMPTY (41)
bugcheck
> we
> > need to use exception handling around IoAllocateIrp calls?
> >
> > I was under the impression that MS frowned upon using must succeed with
> > memory allocations.
> >
> > Stanislaw
> >
> >
> >
> >
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@relicore.com
> To unsubscribe send a blank email to %%email.unsub%%
>
>
>
>


You are currently subscribed to ntdev as: xxxxx@relicore.com
To unsubscribe send a blank email to %%email.unsub%%