ExFreePool bug checks

Hello,

We have an upper filter storage driver which generates IRP requests and send them the the underlying driver. We have a problem that ExFreePool bug checks with error IRQL_NOT_LESS_OR_EQUAL when we call to it after IoCallDriver returns.

If we call ExFreePool before IoCallDriver then it doesn’t crash.
Memory is allocated from NonPagedPool
Request is IOCTL_GET_DRIVE_LAYOUT
Parameter2 (IRQL at time of reference) is equal to 2, though KeGetCurrentIrql returns 0 before the call to ExFreePool

Thanks,
Roman

What memory are you freeing? If it’s an IRP, typically you aren’t
responsible for freeing it after doing an IoCallDriver, and cannot
reference the IRP at all, unless it is being done in a completion/cancel
callback.

Gary G. Little


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roman Kudinov
Sent: Monday, December 19, 2005 5:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] ExFreePool bug checks

Hello,

We have an upper filter storage driver which generates IRP requests and
send them the the underlying driver. We have a problem that ExFreePool bug
checks with error IRQL_NOT_LESS_OR_EQUAL when we call to it after
IoCallDriver returns.

If we call ExFreePool before IoCallDriver then it doesn’t crash.

Memory is allocated from NonPagedPool

Request is IOCTL_GET_DRIVE_LAYOUT

Parameter2 (IRQL at time of reference) is equal to 2, though
KeGetCurrentIrql returns 0 before the call to ExFreePool

Thanks,

Roman


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Hello Gary,

  1. We allocate buffer to pass along with IOCTL_GET_DRIVE_LAYOUT request
  2. We work with the filled buffer after IoCallDriver
  3. It bug checks if we free this buffer

Thank you,
Roman

сообщил/сообщила в новостях следующее: news:xxxxx@ntdev…
What memory are you freeing? If it’s an IRP, typically you aren’t responsible for freeing it after doing an IoCallDriver, and cannot reference the IRP at all, unless it is being done in a completion/cancel callback.

Gary G. Little

------------------------------------------------------------------------------

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Roman Kudinov
Sent: Monday, December 19, 2005 5:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] ExFreePool bug checks

Hello,

We have an upper filter storage driver which generates IRP requests and send them the the underlying driver. We have a problem that ExFreePool bug checks with error IRQL_NOT_LESS_OR_EQUAL when we call to it after IoCallDriver returns.

If we call ExFreePool before IoCallDriver then it doesn’t crash.

Memory is allocated from NonPagedPool

Request is IOCTL_GET_DRIVE_LAYOUT

Parameter2 (IRQL at time of reference) is equal to 2, though KeGetCurrentIrql returns 0 before the call to ExFreePool

Thanks,

Roman


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com