Re: NDIS WDM driver installation for multi-port NIC



I forgot to mention that I did run chkinf and fixed all of the errors, but
this didn't change the installation errors.

"Don Burn" wrote:

I would not think the one INF should be a problem. You need to turn on
istall logging and see what the problem is. Have you run ChkInf on the INF
file? If not do so, and be sure to clean up all errors and warnings. Just
because it is a warning dit cannot be ignored, a lot of these produce
failures on install.



--
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:3B6504A1-DDE7-4CEA-B0C6-6BFC5D67DA6E@xxxxxxxxxxxxxxxx
I'm having trouble figuring out how to install the drivers for the new
PDOs.
I've looked through several samples and inf files, and I'm not getting a
clear picture of what is missing.

I've separated the single inf into two infs--one for the bus driver and
one
for the miniport driver. I've created new PDOs for each port, returned
them
when the driver gets an IRP_MN_QUERY_DEVICE_RELATIONS, caused PNP to find
new
hardware (the ports) and have been able to get PNP to recognize the
miniport's inf and to install the miniport driver. However, PNP reports
that
an entry is missing from the inf and a yellow question mark shows up next
to
the miniport driver (the bus driver starts up fine).

Does it matter whether I have a single inf file to install both drivers
or
separate inf files to install them? How can I go about debugging this
issue?

The original inf that I had installed the miniport and bus driver at the
same time and bound them in such a way that only one entry appeared in
the
device manager. Now, the bus device and the N miniport devices appear.

"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.









.



Relevant Pages

  • Re: Clustered printing issue
    ... tcp/ip port. ... accessible unless you install the printer driver. ... printers restored via the print migrator tool. ...
    (microsoft.public.windows.server.clustering)
  • Re: KMDF Fakemodem not working
    ... I'm using the `Windows Vista and Windows Server Longhorn x86 Checked Build ... install the fakemodem with devcon: ... INf in the sample should tell you how to use devcon to install the driver. ... Why do I need to choose a COM port? ...
    (microsoft.public.development.device.drivers)
  • KMDF Fakemodem not working
    ... I'm trying to develop my first device driver but have some problems getting ... I succeeded to install the WDM version on a Win 2003 Server x86 using the ... I had to disable a real modem driver, ... Why do I need to choose a COM port? ...
    (microsoft.public.development.device.drivers)
  • Re: NDIS WDM driver installation for multi-port NIC
    ... I would not think the one INF should be a problem. ... Windows 2k/XP/2k3 Filesystem and Driver Consulting ... the miniport driver (the bus driver starts up fine). ... identify the particular port you are communicating with. ...
    (microsoft.public.development.device.drivers)
  • Re: NDIS WDM driver installation for multi-port NIC
    ... I also have some questions regarding which class the bus driver should be ... PDO for each port, and have one IOCTL you can issue that will return the ...
    (microsoft.public.development.device.drivers)