Question about NDIS-WDM with PCI interface?

Hello… everybody…

I have a idiot question.

  1. Now I am going to make a driver to support NDIS model(get IP data from
    board)
    and Multimedia data(get video stream from board) with PCI inteface on win2K
    and win98.

i.e, when a data from board is IP data, the driver have to do like as Ndis
dirver( send data to NDIS stack), and when a data from board is Video
stream, the driver have to handle as streamming driver or general WDM
driver.

Currently, I am using 2 driver for each purpose. but I think it isn’t
good solution.

2 . Some guys said NDIS_WDM model isn’t good solution because Microsoft
doesn’t like that model.
is it really bad idea to use NDIS_WDM model?

  1. when I use NDIS_WDM model, Should I use 2 binary( ndiswdm.sys and
    WDMdriverForPCI.sys) ?
    then How to install 2 binary files for one device ?

  2. Is it possible to use DeviceIOControl to communicate with NDIS dirver?

I will be happy if anyone give me a any idea.
Thanks for reading throuthout.

Best Regard.
Justin Kim


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> Hello… everybody…

Hi,

I have a idiot question.

  1. Now I am going to make a driver to support NDIS model(get IP data from
    board)
    and Multimedia data(get video stream from board) with PCI inteface on win2K
    and win98.

i.e, when a data from board is IP data, the driver have to do like as Ndis
dirver( send data to NDIS stack), and when a data from board is Video
stream, the driver have to handle as streamming driver or general WDM
driver.

Currently, I am using 2 driver for each purpose. but I think it isn’t
good solution.

You’re right it isn’t. If your device is PCI, you don’t need a WDM driver
at all you can do anything and everything you need from an NDIS miniport.

2 . Some guys said NDIS_WDM model isn’t good solution because Microsoft
doesn’t like that model.
is it really bad idea to use NDIS_WDM model?

Well, if that were the case why did they make the NDIS_WDM flag and
document it? Anyway, you don’t need this flag for a PCI device. You only
need this flag if you have to use things like IRPs or some such to talk to
your hardware, such as for a USB device. As PCI maps its registers and
ports into memory/IO space, you don’t need access to these kernel
implements. Do everything in NDIS.

  1. when I use NDIS_WDM model, Should I use 2 binary( ndiswdm.sys and
    WDMdriverForPCI.sys) ?
    then How to install 2 binary files for one device ?

The whole reason of having NDIS_WDM was to allow an NDIS driver to make use
of WDM ‘things’, for lack of a better term, and WDM function calls. This
would alleviate the need for two drivers. That way you can make a single
NDIS_WDM miniport that handles a USB or 1394 or some similar device.

  1. Is it possible to use DeviceIOControl to communicate with NDIS dirver?

Yes, but you really don’t want to do that. You should use WMI, unless you
need your binary to also run on Win98 retail. It has been a while since I
dealt with this, but as I remember WMI, or some needed functionality is not
in place on the early versions of 98. Similarily, there is no good way to
create a symbolic link on 98, certainly no way that Microsoft will also
WHQL for a 2000 binary. So, you may have to create two binaries for this.

Somebody more current on the topic may be able to help with WMI and early
Win9x versions.

I will be happy if anyone give me a any idea.
Thanks for reading throuthout.

Best Regard.
Justin Kim

Good luck.

Bill M.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

xxxxx@bsquare.com wrote:

You’re right it isn’t. If your device is PCI, you don’t need a WDM driver
at all you can do anything and everything you need from an NDIS miniport.

> 2 . Some guys said NDIS_WDM model isn’t good solution because Microsoft
> doesn’t like that model.
> is it really bad idea to use NDIS_WDM model?

Well, if that were the case why did they make the NDIS_WDM flag and
document it? Anyway, you don’t need this flag for a PCI device. You only
need this flag if you have to use things like IRPs or some such to talk to
your hardware, such as for a USB device. As PCI maps its registers and
ports into memory/IO space, you don’t need access to these kernel
implements. Do everything in NDIS.

Is it possible to support multiple such pci boards through just one miniport
driver ?
I am having trouble with this implementation and my solution is to create two
binaries with private interface between them.

> 3. when I use NDIS_WDM model, Should I use 2 binary( ndiswdm.sys and
> WDMdriverForPCI.sys) ?
> then How to install 2 binary files for one device ?
>

The whole reason of having NDIS_WDM was to allow an NDIS driver to make use
of WDM ‘things’, for lack of a better term, and WDM function calls. This
would alleviate the need for two drivers. That way you can make a single
NDIS_WDM miniport that handles a USB or 1394 or some similar device.

> 4. Is it possible to use DeviceIOControl to communicate with NDIS dirver?
>

Yes, but you really don’t want to do that. You should use WMI, unless you
need your binary to also run on Win98 retail. It has been a while since I
dealt with this, but as I remember WMI, or some needed functionality is not
in place on the early versions of 98. Similarily, there is no good way to
create a symbolic link on 98, certainly no way that Microsoft will also
WHQL for a 2000 binary. So, you may have to create two binaries for this.

Yeah. Looks like this what ultimately one should be doing : )

regards,
Hassan


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com