Device Path Exerciser Problem.

Hi All,

I am working on a WDM driver and running the Device Path Exerciser.
At the time when the tool is executing the “random IOCTL test” the
ACCESS_VOILATION is raised. All my IOCTLS are using METHOD_BUFFERED and
from documentation it looks to me like for method buffered the
ProbeForRead/Write is not needed.
Just for Trial I added the ProbeForRead And ProbeForWrite in the
code which is always raising a exception for all the IOCTL.

Questions:

  1. Do we need to check for the ProbeForRead/Write in buffered IOCTL. ??
    I would think that since the IOCTL is buffered the Irp->RequestorMode
    will still tell me that it is a UserMode Irp but since the buffers are
    allocated in the Kernel. Is this correct??

  2. If 1 is correct then why I am getting a ACCESS_VOILATION when the
    DevicePathExerciser is run.

Thanks,

  • Aj.
  1. No - you don’t need to probe buffers for buffered I/O controls

  2. The most likely cause is that the DPE tricked you into doing an
    illegal access of your buffer. Perhaps it sent down a buffer whose
    length wasn’t what you expected, or perhaps it sent an I/O control with
    no buffers.

You can figure out why you’re getting an access violation by debugging
your code.

-p

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ajitabh Saxena
Sent: Wednesday, December 06, 2006 1:24 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Device Path Exerciser Problem.

Hi All,

I am working on a WDM driver and running the Device Path Exerciser.
At the time when the tool is executing the “random IOCTL test” the
ACCESS_VOILATION is raised. All my IOCTLS are using METHOD_BUFFERED and
from documentation it looks to me like for method buffered the
ProbeForRead/Write is not needed.

Just for Trial I added the ProbeForRead And ProbeForWrite in the
code which is always raising a exception for all the IOCTL.

Questions:

  1. Do we need to check for the ProbeForRead/Write in buffered IOCTL. ??
    I would think that since the IOCTL is buffered the Irp->RequestorMode
    will still tell me that it is a UserMode Irp but since the buffers are
    allocated in the Kernel. Is this correct??

  2. If 1 is correct then why I am getting a ACCESS_VOILATION when the
    DevicePathExerciser is run.

Thanks,

  • Aj.

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

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer