Re: DIRECT_IO IOCTL ,driver gets request as a BUFFER - ED_IO ?

The buffered IO is the input buffer and the direct IO is the output buffer.
The method defines the direction of the output buffer.

  • Dennis

Dennis Merrill
Embedded Systems Engineer
Thermo Electron Corporation
Spectroscopy Division

-----Original Message-----
From: xxxxx@amd.com [mailto:xxxxx@amd.com]
Sent: Wednesday, February 20, 2002 10:59 AM
To: NT Developers Interest List
Subject: [ntdev] Re: DIRECT_IO IOCTL ,driver gets request as a BUFFER ED_IO
?

So in the application DeviceIoControl() if I specify both “InputBuffer” and
“OutputBuffer” ,both can be used to transfer data to/from the driver ?

does that mean,we can do both BUFFERED IO and DIRECT IO at the same time
using METHOD_*_DIRECT?.
When I specified “OutputBuffer” in DeviceIoControl() ,I get the
corresponding MDL at the Irp.Thank you folks.
Thanks,
Reeja
-----Original Message-----
From: xxxxx@thermonicolet.com [mailto:xxxxx@thermonicolet.com]
Sent: Wednesday, February 20, 2002 6:55 AM
To: NT Developers Interest List
Subject: [ntdev] Re: DIRECT_IO IOCTL ,driver gets request as a BUFFER ED_IO
?
To expand a little on Max’s suggestion, when you use the DIRECT methods only
one direction is direct buffer (either IN or OUT) - then the other direction
will still be BUFFERED. Perhaps you are specifying the wrong direction and
then you are looking at the BUFFERED variable instead of the DIRECT one.

  • Dennis

Dennis Merrill
Embedded Systems Engineer
Thermo Electron Corporation
Spectroscopy Division

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Tuesday, February 19, 2002 9:52 PM
To: NT Developers Interest List
Subject: [ntdev] Re: DIRECT_IO IOCTL ,driver gets request as a BUFFERED_IO ?

DO_DIRECT_IO has no effect on IOCTLs, only on reads and writes.
Try METHOD_OUT_DIRECT.

Max
----- Original Message -----
From: xxxxx@amd.com mailto:xxxxx
To: NT Developers mailto:xxxxx Interest List
Sent: Wednesday, February 20, 2002 5:08 AM
Subject: [ntdev] DIRECT_IO IOCTL ,driver gets request as a BUFFERED_IO ?

Hi,
I added a new METHOD_IN_DIRECT ioctl to a kernel mode driver.I changed
device object flags to pDeviceObject->Flags| = DO_DIRECT_IO.But when the
application send a buffer through this IOCTL call the buffer get as a
BUFFERED_IO call. That means pIrp->MdlAddress is NULL and I can see the
buffer at pIRP->AsscociatedIrp.SystemBuffer.Am I missing something?Any clue?

Thanks in advance,
Reeja

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

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

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

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


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</mailto:xxxxx></mailto:xxxxx>