Re: Miniport versus intermediate???
- From: Jan <Jan@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 20 Sep 2007 06:44:04 -0700
Thanks for the reply, I will look at those examples more closely. I had
started looking at those two you recommended, but wanted to make sure that
they were what I needed.
For my edification, can you give me a short example of when I would use #1?
Also, can I have the PCI connected into the TCP/IP Protocol at the same time
as an Ethernet driver and dynamically switch between them?
Thanks again,
Jan
"Stephan Wolf [MVP]" wrote:
#2 is what you need. More specifically, you need to write an NDIS-WDM.
driver, i.e., a "virtual" miniport that sits on a WDM driver that
controls a PCI device. See the NDISWDM sample in the DDK (...\src
\network\ndis\ndiswdm\) as well as the PCIDRV sample (...\src\general
\pcidrv\), which can be used with NDISWDM. See also
"Miniport Driver with a WDM Lower Interface (NDIS 5.1)"
http://msdn2.microsoft.com/EN-US/library/aa504096.aspx
As an alternative, you could of course write a standard NDIS miniport
that controls your PCI device directly. But if you already have a
driver for your device then an NDIS-WDM is probably the easier choice.
Stephan
---
On Sep 18, 10:36 pm, Jan <J...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi,
I am new to writing windows drivers, and am currently in learn mode. My
ignorance may shine through in this question:
That being said, I have the following setup and issue:
I have 2 processor boards that will connect up to each other through a PCI
Express NT bridge chip. I am comfortable with writing a driver to access the
NT bridge chip to read and write across the chip.
To take the driver to the next level, I would like to hook up an existing
Protocol Driver (say TCP/IP) to my chip driver. I am starting to get
confused as to what I need to write to achieve this, whether it is a miniport
driver, an intermediate driver, or both.
If my understanding is correct, I have the following 'design':
-------------------------
| Protocol Drivers |
-------------------------
-------------------------
| * NDIS wrapper |
-------------------------
??????????????
-------------------------
| PCIE NT bridge |
| driver |
--------------------------
* Sort of spans multiple layers, (e.g. wrapper)
I understand that NDIS gives me the conformity/interfaces I must follow to
bridge between the Protocol drivers, and the underlying hardware driver (and
that it isolates me from OS to a big degree). What I can't figure out is
where I have marked ' ???????'. Here is what I think, can someone offer
more insight and point me to places to read up on this:
1) I write an intermediate driver that interfaces into the protocol drivers
at its upper edge, then at its lower edge it interfaces with a miniport
driver. Miniport driver's upper edge interfaces w/intermediate driver and
its lower edge interfaces with the PCIE NT bridge driver
2) Just write a miniport driver to interface upper edge with Protocol
Drivers and lower edge with PCIE NT bridge driver.
I actually started out thinking I just need to do #2, but as I poke around a
different articles, I am wondering if I need to translate across through an
intermediate driver for some reason. Can anyone help?
Bonus round question is can I hook the TCP/IP protocol driver up to multiple
hardware drivers, and switch dynamically between them?
Thanks for any help.
Jan
- Follow-Ups:
- Re: Miniport versus intermediate???
- From: Stephan Wolf [MVP]
- Re: Miniport versus intermediate???
- References:
- Miniport versus intermediate???
- From: Jan
- Re: Miniport versus intermediate???
- From: Stephan Wolf [MVP]
- Miniport versus intermediate???
- Prev by Date: Re: NDIS - USB Driver: WdfUsbTargetDeviceCreate Error
- Next by Date: Re: filter driver for disk.sys
- Previous by thread: Re: Miniport versus intermediate???
- Next by thread: Re: Miniport versus intermediate???
- Index(es):
Relevant Pages
|