Re: NDIS WDM driver installation for multi-port NIC
- From: DW <DZ@xxxxxxxxxxxxx>
- Date: Wed, 27 Sep 2006 12:34:02 -0700
I also have some questions regarding which class the bus driver should be
installed under and which hardware ID to use. Should the bus driver be
installed under the system class or net class and does it matter? Does it
matter what the hardware ID is? Should it be based on the bus driver's vendor
ID or the GUID used for network adapters?
"Don Burn" wrote:
I assume the single API has some sort of "port number" parameter to.
identify the particular port you are communicating with. If so create a
PDO for each port, and have one IOCTL you can issue that will return the
port number for the PDO.
You model is correct, the board has a PDO from whatever bus you are on, you
attach an FDO to that, and then instantiate a PDO for each port as part of
the bus driver. The NDIS WDM driver then attaches an FDO to each ports
PDO.
I have done this for a pair of devices that was split into 2 SCSI ports, 1
special device, and up to 32 NIC's. This was in a commectial product that
has been shipping for over 3 years now.
--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
http://www.windrvr.com
Remove StopSpam from the email to reply
"DW" <DZ@xxxxxxxxxxxxx> wrote in message
news:C96FE469-E68C-4AEC-BE2F-2585C5D3F825@xxxxxxxxxxxxxxxx
That model is certainly quite different from how we've treated resources
on
the board in the past, where the interfaces are secondary, rather than
primary, resources (the ports are currently controlled by an API and are
independent of the Windows stack).
Can you elaborate more on structurally, how the device tree would look
for
this board? I've been trying to describe how I think the picture should
look
like for the device tree, but I'm having trouble because the "bus driver"
is
in reality a monolithic bus and function driver. The whole board and each
interface are currently controlled via a single API and single FDO. I
guess
in the end, it shouldn't matter whether multiple drivers are combined
into
one physical .sys, as long as the functionality is separated out within
the
driver clearly?
Would you have the board's (bus) PDO at the bottom, followed by the
board's
(bus) FDO, followed by the port PDOs (possibly with an FDO on top of each
PDO)?
So in other words:
Miniport: Mini0 Mini1
| |
Bus/Func: PortPDO0 PortPDO1
\ /
Bus FDO (board)
|
Bus PDO (board)
"Don Burn" wrote:
The bus driver should instantiate a PDO for each physical port. If you
design the interface correctly, this will allow you to have a seperate
NDIS
WDM instance, that then talks to its given port.
--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
http://www.windrvr.com
Remove StopSpam from the email to reply
"DW" <DZ@xxxxxxxxxxxxx> wrote in message
news:A7B6D992-A1F9-483D-BCBE-AD4AEF344F4E@xxxxxxxxxxxxxxxx
I know how to install an NDIS WDM driver over a bus driver like the
pcidrv
sample. However, I'm still trying to understand the different ways to
programmatically install multiple instances of an NDIS WDM driver over
a
single instance of a bus driver. The reason there is an N-1
correspondence of
miniport devices to bus/functional devices is because the
bus/functional
device accesses a single card, which has multiple physical ports.
Would
it
make more sense to create the device tree differently so that there is
a
1-1
correspondence between devices and to share the state information?
Can the devcon sample be used as a starting point? If I understand
things
correctly, I should be able to use SetupDiCreateDeviceInfo to create
multiple
NDIS WDM devices/nodes on top of a given bus/functional device.
- References:
- Re: NDIS WDM driver installation for multi-port NIC
- From: Don Burn
- Re: NDIS WDM driver installation for multi-port NIC
- From: DW
- Re: NDIS WDM driver installation for multi-port NIC
- From: Don Burn
- Re: NDIS WDM driver installation for multi-port NIC
- Prev by Date: Re: NDIS WDM driver installation for multi-port NIC
- Next by Date: Re: Once more on remove lock
- Previous by thread: Re: NDIS WDM driver installation for multi-port NIC
- Next by thread: Memory Leak pooltag="Ddk", windows xp media center 2004, what driver is this?
- Index(es):
Relevant Pages
|