KMDF driver architecture

Good morning,
one of my customers needs a driver for a custom PCI device which has on
board 4 GMS modems.
Currently I am thinking to the following architecture with 2 KMDF drivers:

  1. PCI bus driver enumerates my custom function driver’s device object
  2. My function driver statically enumerates 4 custom modem drivers’s PDOs
    (like toaster/bus/static)
  3. My modem driver will provide the correct interface (like fakemodem) to
    modem.sys and upper layers.
  4. My modem driver will forward read/write requests to enumerated PDOs
  5. Function driver will map these requests to PCI bus I/O operations

Am I going in the right direction ?
Any suggestion will be highly appreciated !

Best regards,
PaoloC

You might want to look into using mf.sys, especially if your modem
functions can be neatly partitioned across PCI register resources. Then
perhaps all you have to do is write a simple KMDF function driver for
the mf enumerated PDOs.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Paolo Cazzola
Sent: Tuesday, July 11, 2006 3:22 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver architecture

Good morning,
one of my customers needs a driver for a custom PCI device which has on
board 4 GMS modems.
Currently I am thinking to the following architecture with 2 KMDF
drivers:

  1. PCI bus driver enumerates my custom function driver’s device object
  2. My function driver statically enumerates 4 custom modem drivers’s
    PDOs
    (like toaster/bus/static)
  3. My modem driver will provide the correct interface (like fakemodem)
    to
    modem.sys and upper layers.
  4. My modem driver will forward read/write requests to enumerated PDOs
  5. Function driver will map these requests to PCI bus I/O operations

Am I going in the right direction ?
Any suggestion will be highly appreciated !

Best regards,
PaoloC


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

Mark’s design choice is what I would try first. This will only work if
the 4 modems can be operated independently of each other, e.g. they do
not share any hardware resources at all. If you cannot do this, the
architecture you described will work quite well.

d

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

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
Sent: Tuesday, July 11, 2006 6:52 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver architecture

You might want to look into using mf.sys, especially if your modem
functions can be neatly partitioned across PCI register resources. Then
perhaps all you have to do is write a simple KMDF function driver for
the mf enumerated PDOs.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Paolo Cazzola
Sent: Tuesday, July 11, 2006 3:22 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver architecture

Good morning,
one of my customers needs a driver for a custom PCI device which has on
board 4 GMS modems.
Currently I am thinking to the following architecture with 2 KMDF
drivers:

  1. PCI bus driver enumerates my custom function driver’s device object
  2. My function driver statically enumerates 4 custom modem drivers’s
    PDOs (like toaster/bus/static)
  3. My modem driver will provide the correct interface (like fakemodem)
    to modem.sys and upper layers.
  4. My modem driver will forward read/write requests to enumerated PDOs
  5. Function driver will map these requests to PCI bus I/O operations

Am I going in the right direction ?
Any suggestion will be highly appreciated !

Best regards,
PaoloC


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

The edict on “Share any resources” is relaxed in later versions of mf
(XP I think) so that a single resource can be partitioned into pieces
that are each owned by a PDO. Note also that interrupts can be shared.
See Creating Varying Resource Maps in the DDK.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, July 11, 2006 10:22 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver architecture

Mark’s design choice is what I would try first. This will only work if
the 4 modems can be operated independently of each other, e.g. they do
not share any hardware resources at all. If you cannot do this, the
architecture you described will work quite well.

d

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

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
Sent: Tuesday, July 11, 2006 6:52 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver architecture

You might want to look into using mf.sys, especially if your modem
functions can be neatly partitioned across PCI register resources. Then
perhaps all you have to do is write a simple KMDF function driver for
the mf enumerated PDOs.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Paolo Cazzola
Sent: Tuesday, July 11, 2006 3:22 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver architecture

Good morning,
one of my customers needs a driver for a custom PCI device which has on
board 4 GMS modems.
Currently I am thinking to the following architecture with 2 KMDF
drivers:

  1. PCI bus driver enumerates my custom function driver’s device object
  2. My function driver statically enumerates 4 custom modem drivers’s
    PDOs (like toaster/bus/static)
  3. My modem driver will provide the correct interface (like fakemodem)
    to modem.sys and upper layers.
  4. My modem driver will forward read/write requests to enumerated PDOs
  5. Function driver will map these requests to PCI bus I/O operations

Am I going in the right direction ?
Any suggestion will be highly appreciated !

Best regards,
PaoloC


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


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

Thanks a lot Mark and Doron,
I will follow your precious suggestions !

PaoloC

----- Original Message -----
From: “Roddy, Mark”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, July 11, 2006 5:23 PM
Subject: RE: [ntdev] KMDF driver architecture

The edict on “Share any resources” is relaxed in later versions of mf
(XP I think) so that a single resource can be partitioned into pieces
that are each owned by a PDO. Note also that interrupts can be shared.
See Creating Varying Resource Maps in the DDK.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, July 11, 2006 10:22 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver architecture

Mark’s design choice is what I would try first. This will only work if
the 4 modems can be operated independently of each other, e.g. they do
not share any hardware resources at all. If you cannot do this, the
architecture you described will work quite well.

d

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

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
Sent: Tuesday, July 11, 2006 6:52 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] KMDF driver architecture

You might want to look into using mf.sys, especially if your modem
functions can be neatly partitioned across PCI register resources. Then
perhaps all you have to do is write a simple KMDF function driver for
the mf enumerated PDOs.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Paolo Cazzola
Sent: Tuesday, July 11, 2006 3:22 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF driver architecture

Good morning,
one of my customers needs a driver for a custom PCI device which has on
board 4 GMS modems.
Currently I am thinking to the following architecture with 2 KMDF
drivers:

1) PCI bus driver enumerates my custom function driver’s device object
2) My function driver statically enumerates 4 custom modem drivers’s
PDOs (like toaster/bus/static)
3) My modem driver will provide the correct interface (like fakemodem)
to modem.sys and upper layers.
4) My modem driver will forward read/write requests to enumerated PDOs
5) Function driver will map these requests to PCI bus I/O operations

Am I going in the right direction ?
Any suggestion will be highly appreciated !

Best regards,
PaoloC


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


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