CDO-user space I/O

Hi,

Been doing drivers for hardware devices for a while but this is my first
attempt at a file filter. Have the IFS and have been reading. If my question
is covered in the IFS material, I haven’t found it yet.

I came across a statement that seemed to say that filter drivers never mark
an IRP as pending. With respect to the Control Device Object and its user
space partner, does this hold true? Do I have the statement in the wrong
context?

The sfilter example does not implement anything in this area. The Spy
example passes available data (usually lots of stuff) to user space via an
ioctl that completes immediately. The transaction seems to be based on
polling.

What I want to do is have user space issue an overlapped read to the CDO
that gets completed when (and if) there’s some information to be reported.
This of course requires marking the IRP pending and implementing a cancelio
routine. I don’t have much data to move and I’d rather be event driven than
poll.

Can you do this?

Sub question: can you do this with an ioctl? I’m comfortable with the idea
of using ioctl for control and read for data transfer but if there’s no
advantage to this other than ‘purity’ of implementation, the ioctl-only
method would be easier to code.

Regards,
Mickey.

Yes, I do this for a user-kernel communication protocol through my CDO using
overlapped IO. And yes it is done through an IOCtl.

Pete

Kernel Drivers
Windows Filesystem and Device Driver Consulting
www.KernelDrivers.com
(303)546-0300

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mickey Lane
Sent: Thursday, May 12, 2005 11:52 AM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] CDO-user space I/O

Hi,

Been doing drivers for hardware devices for a while but this is my first
attempt at a file filter. Have the IFS and have been reading. If my question
is covered in the IFS material, I haven’t found it yet.

I came across a statement that seemed to say that filter drivers never mark
an IRP as pending. With respect to the Control Device Object and its user
space partner, does this hold true? Do I have the statement in the wrong
context?

The sfilter example does not implement anything in this area. The Spy
example passes available data (usually lots of stuff) to user space via an
ioctl that completes immediately. The transaction seems to be based on
polling.

What I want to do is have user space issue an overlapped read to the CDO
that gets completed when (and if) there’s some information to be reported.
This of course requires marking the IRP pending and implementing a cancelio
routine. I don’t have much data to move and I’d rather be event driven than
poll.

Can you do this?

Sub question: can you do this with an ioctl? I’m comfortable with the idea
of using ioctl for control and read for data transfer but if there’s no
advantage to this other than ‘purity’ of implementation, the ioctl-only
method would be easier to code.

Regards,
Mickey.


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

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

On Control Device, you can pend the IRPs for sure. The driver is not a
filter if we are speaking about its control device.

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

----- Original Message -----
From: “Mickey Lane”
To: “Windows File Systems Devs Interest List”
Sent: Thursday, May 12, 2005 9:51 PM
Subject: [ntfsd] CDO-user space I/O

Hi,

Been doing drivers for hardware devices for a while but this is my first
attempt at a file filter. Have the IFS and have been reading. If my question
is covered in the IFS material, I haven’t found it yet.

I came across a statement that seemed to say that filter drivers never mark
an IRP as pending. With respect to the Control Device Object and its user
space partner, does this hold true? Do I have the statement in the wrong
context?

The sfilter example does not implement anything in this area. The Spy
example passes available data (usually lots of stuff) to user space via an
ioctl that completes immediately. The transaction seems to be based on
polling.

What I want to do is have user space issue an overlapped read to the CDO
that gets completed when (and if) there’s some information to be reported.
This of course requires marking the IRP pending and implementing a cancelio
routine. I don’t have much data to move and I’d rather be event driven than
poll.

Can you do this?

Sub question: can you do this with an ioctl? I’m comfortable with the idea
of using ioctl for control and read for data transfer but if there’s no
advantage to this other than ‘purity’ of implementation, the ioctl-only
method would be easier to code.

Regards,
Mickey.


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

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

Can we pend on Filter Device Objects?

Thanks,
Kedar.
“Maxim S. Shatskih” wrote in message
news:xxxxx@ntfsd…
> On Control Device, you can pend the IRPs for sure. The driver is not a
> filter if we are speaking about its control device.
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
> ----- Original Message -----
> From: “Mickey Lane”
> To: “Windows File Systems Devs Interest List”
> Sent: Thursday, May 12, 2005 9:51 PM
> Subject: [ntfsd] CDO-user space I/O
>
>
> Hi,
>
> Been doing drivers for hardware devices for a while but this is my first
> attempt at a file filter. Have the IFS and have been reading. If my
> question
> is covered in the IFS material, I haven’t found it yet.
>
> I came across a statement that seemed to say that filter drivers never
> mark
> an IRP as pending. With respect to the Control Device Object and its user
> space partner, does this hold true? Do I have the statement in the wrong
> context?
>
> The sfilter example does not implement anything in this area. The Spy
> example passes available data (usually lots of stuff) to user space via an
> ioctl that completes immediately. The transaction seems to be based on
> polling.
>
> What I want to do is have user space issue an overlapped read to the CDO
> that gets completed when (and if) there’s some information to be reported.
> This of course requires marking the IRP pending and implementing a
> cancelio
> routine. I don’t have much data to move and I’d rather be event driven
> than
> poll.
>
> Can you do this?
>
> Sub question: can you do this with an ioctl? I’m comfortable with the idea
> of using ioctl for control and read for data transfer but if there’s no
> advantage to this other than ‘purity’ of implementation, the ioctl-only
> method would be easier to code.
>
> Regards,
> Mickey.
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>

Kedar,

There are no restrictions on who can pend requests in the stack, just handle
the asynchronous processing correctly and everyone will be happy.

Pete

Kernel Drivers
Windows Filesystem and Device Driver Consulting
www.KernelDrivers.com
(303)546-0300

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of kedar
Sent: Friday, May 13, 2005 5:50 AM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] CDO-user space I/O

Can we pend on Filter Device Objects?

Thanks,
Kedar.
“Maxim S. Shatskih” wrote in message
news:xxxxx@ntfsd…
> On Control Device, you can pend the IRPs for sure. The driver is not a
> filter if we are speaking about its control device.
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
> ----- Original Message -----
> From: “Mickey Lane”
> To: “Windows File Systems Devs Interest List”
> Sent: Thursday, May 12, 2005 9:51 PM
> Subject: [ntfsd] CDO-user space I/O
>
>
> Hi,
>
> Been doing drivers for hardware devices for a while but this is my first
> attempt at a file filter. Have the IFS and have been reading. If my
> question
> is covered in the IFS material, I haven’t found it yet.
>
> I came across a statement that seemed to say that filter drivers never
> mark
> an IRP as pending. With respect to the Control Device Object and its user
> space partner, does this hold true? Do I have the statement in the wrong
> context?
>
> The sfilter example does not implement anything in this area. The Spy
> example passes available data (usually lots of stuff) to user space via an
> ioctl that completes immediately. The transaction seems to be based on
> polling.
>
> What I want to do is have user space issue an overlapped read to the CDO
> that gets completed when (and if) there’s some information to be reported.
> This of course requires marking the IRP pending and implementing a
> cancelio
> routine. I don’t have much data to move and I’d rather be event driven
> than
> poll.
>
> Can you do this?
>
> Sub question: can you do this with an ioctl? I’m comfortable with the idea
> of using ioctl for control and read for data transfer but if there’s no
> advantage to this other than ‘purity’ of implementation, the ioctl-only
> method would be easier to code.
>
> Regards,
> Mickey.
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@kerneldrivers.com
To unsubscribe send a blank email to xxxxx@lists.osr.com