Bus driver acting as function driver for its PDO

Hi,
Can my bus driver act as function driver for the PDO it has created? What I mean is there are no function driver for these PDOs and I would like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in the bus driver itself.

thx
SID


Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.

Yes, you can if you mark the PDO as RawDeviceOK == TRUE in the
DEVICE_CAPABILITIES when you initially enumerate the PDO. Note that the
PDO will be immediately started after being reported as present and can
then be immediately sent a remove if an INF matches the PDO’s hardware
or compatible IDs. You will also have to be the power policy owner for
the raw PDO and perform the S->D state mappings.

d

– I can spell, I just can’t type.


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of krnl_drv
Sent: Wednesday, March 08, 2006 11:42 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Bus driver acting as function driver for its PDO

Hi,
Can my bus driver act as function driver for the PDO it has created?
What I mean is there are no function driver for these PDOs and I would
like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in
the bus driver itself.
thx
SID


Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze. —
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

Sure. Just add an inf file spec for the PnP enumeration string coming
out of your PDO and you will be called at your AddDevice interface with
your enumerated PDO - you have to figure out how to differentiate this
PDO from the one that your bus driver is already a function driver for.


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of krnl_drv
Sent: Wednesday, March 08, 2006 2:42 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Bus driver acting as function driver for its PDO

Hi,

Can my bus driver act as function driver for the PDO it has created?
What I mean is there are no function driver for these PDOs and I would
like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in
the bus driver itself.

thx

SID


Yahoo! Mail
Bring photos to life! New PhotoMail
http:ail.yahoo.com> makes sharing a breeze. — 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</http:>

> Can my bus driver act as function driver for the PDO it has created?

Yes, but it must take some measures to distinguish itself as a functional and
as a bus driver.

IIRC ACPI.SYS does this.

You can also create raw PDOs which will not require any FDO, and do all work in
PDO paths of the bus driver.

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

Elyas’s toaster bus driver discriminates between FDO and FDO
functionality. At least it used to.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: Wednesday, March 08, 2006 2:16 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Bus driver acting as function driver for its PDO

Can my bus driver act as function driver for the PDO it has created?

Yes, but it must take some measures to distinguish itself as a functional
and
as a bus driver.

IIRC ACPI.SYS does this.

You can also create raw PDOs which will not require any FDO, and do all
work in
PDO paths of the bus driver.

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


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

In addition to all answers . Microsoft’s usbhub ( usbhub.sys ) acts in such a way. Try to insert a USB hub in the other USB hub( i.e. simple USB port on your PC ) and see a driver stack.
“krnl_drv” wrote in message news:xxxxx@ntdev…
Hi,
Can my bus driver act as function driver for the PDO it has created? What I mean is there are no function driver for these PDOs and I would like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in the bus driver itself.

thx
SID

------------------------------------------------------------------------------
Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.

Damn keyboard. That should be … PDO and FDO …

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Gary G Little
Sent: Wednesday, March 08, 2006 2:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Bus driver acting as function driver for its PDO

Elyas’s toaster bus driver discriminates between FDO and FDO
functionality. At least it used to.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: Wednesday, March 08, 2006 2:16 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Bus driver acting as function driver for its PDO

Can my bus driver act as function driver for the PDO it has created?

Yes, but it must take some measures to distinguish itself as a functional
and
as a bus driver.

IIRC ACPI.SYS does this.

You can also create raw PDOs which will not require any FDO, and do all
work in
PDO paths of the bus driver.

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


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


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

I did think of this strategy but I am trying to avoid it. If I have to handle everything in the bus driver, I can just work with the PDO. Knowing well, there is no requirement for filter driver in the stack.

“Roddy, Mark” wrote:
v:* {behavior:url(#default#VML);} o:* {behavior:url(#default#VML);} w:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} st1:*{behavior:url(#default#ieooui) } Sure. Just add an inf file spec for the PnP enumeration string coming out of your PDO and you will be called at your AddDevice interface with your enumerated PDO – you have to figure out how to differentiate this PDO from the one that your bus driver is already a function driver for.

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

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of krnl_drv
Sent: Wednesday, March 08, 2006 2:42 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Bus driver acting as function driver for its PDO

Hi,

Can my bus driver act as function driver for the PDO it has created? What I mean is there are no function driver for these PDOs and I would like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in the bus driver itself.

thx

SID

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

Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze. — 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


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

---------------------------------
Yahoo! Mail
Use Photomail to share photos without annoying attachments.

There are 2 concepts here that should be clarified.

The first is the PDO acting as the function driver for the stack w/out any additional drivers loaded on top of the PDO. That is a raw PDO. In this case you have

  • Driver PDO
    Driver FDO
  • Some bus PDO

The second is loading yourself again as an FDO on top of your own PDO. As long as the FDO code has all the I/O support from the PDO it needs (support for certain IOCTLs, etc), this will work just fine. In this case you have

Driver FDO

  • Driver PDO
    Driver FDO
  • Some bus PDO

(where indentation level indicates a device stack and the further indent indicates a child).

d


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Slava Imameyev
Sent: Wednesday, March 08, 2006 1:14 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Bus driver acting as function driver for its PDO

In addition to all answers?. Microsoft’s usbhub ( usbhub.sys ) acts in such a way. Try to insert a USB hub in the other USB hub( i.e. simple USB port on your PC )?and see a driver stack.
“krnl_drv” wrote in message news:xxxxx@ntdev…
Hi,
Can my bus driver act as function driver for the PDO it has created? What I mean is there are no function driver for these PDOs and I would like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in the bus driver itself.
thx
SID
________________________________________
Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.


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

Hi Gary,
It still does. The technique is to have a common field in the device extensions of FDO and PDO. Here the FDO is for the toaser bus and PDO is for the devices it creates. Its pretty common scnerio. The example also does not handle READ/WRITE/IOCTL IRPS for PDOs.

thx
SID

xxxxx@seagate.com wrote:
Elyas’s toaster bus driver discriminates between FDO and FDO
functionality. At least it used to.

Gary G. Little

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: Wednesday, March 08, 2006 2:16 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Bus driver acting as function driver for its PDO

Can my bus driver act as function driver for the PDO it has created?

Yes, but it must take some measures to distinguish itself as a functional
and
as a bus driver.

IIRC ACPI.SYS does this.

You can also create raw PDOs which will not require any FDO, and do all
work in
PDO paths of the bus driver.

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


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


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


Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.

Hi Doron,
PnP manager will send down to us IRP_MN_START_DEVICE for the PDOs. But, as I understand from you, my AddDevice() routine will not be called by the PnP manager. B/c my driver’s INF will not match hardware or compatible ID.

Thanks for your help.
Sid

Doron Holan wrote:
Yes, you can if you mark the PDO as RawDeviceOK == TRUE in the
DEVICE_CAPABILITIES when you initially enumerate the PDO. Note that the
PDO will be immediately started after being reported as present and can
then be immediately sent a remove if an INF matches the PDO’s hardware
or compatible IDs. You will also have to be the power policy owner for
the raw PDO and perform the S->D state mappings.

d

– I can spell, I just can’t type.

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of krnl_drv
Sent: Wednesday, March 08, 2006 11:42 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Bus driver acting as function driver for its PDO

Hi,
Can my bus driver act as function driver for the PDO it has created?
What I mean is there are no function driver for these PDOs and I would
like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in
the bus driver itself.
thx
SID

Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze. —
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


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

---------------------------------
Yahoo! Mail
Use Photomail to share photos without annoying attachments.

Correct, AddDevice is only invoked when creating an FDO.

d


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of krnl_drv
Sent: Wednesday, March 08, 2006 2:26 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Bus driver acting as function driver for its PDO

Hi Doron,
PnP manager will?send down to us IRP_MN_START_DEVICE for the PDOs. But, as I understand from you,?my AddDevice() routine will not be called by the PnP manager. B/c my driver’s INF will not match hardware or compatible ID.
?
Thanks for your help.
Sid

Doron Holan wrote:
Yes, you can if you mark the PDO as RawDeviceOK == TRUE in the
DEVICE_CAPABILITIES when you initially enumerate the PDO. Note that the
PDO will be immediately started after being reported as present and can
then be immediately sent a remove if an INF matches the PDO’s hardware
or compatible IDs. You will also have to be the power policy owner for
the raw PDO and perform the S->D state mappings.

d

– I can spell, I just can’t type.

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of krnl_drv
Sent: Wednesday, March 08, 2006 11:42 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Bus driver acting as function driver for its PDO

Hi,
Can my bus driver act as function driver for the PDO it has created?
What I mean is there are no function driver for these PDOs and I would
like to handle READ/WRITE/IOCTL IRPs in addition to PNP & POWER IRPs in
the bus driver itself.
thx
SID

Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze. —
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


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

________________________________________
Yahoo! Mail
Use Photomail to share photos without annoying attachments. — 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