NDIS IM Drivers Architecture?

I have following doubts about Windows Device Driver architecture:

  1. In all of the standard books of Windows Device Drivers, I came across the
    concepts of I/O Request Packet, AddDevice,Dispatch routines etc. But none of
    these are coming into picture in NDIS IM driver model. Is is different
    driver model than the standard one (WDM)? If not, then how is it fitting
    into WDM picture? Are IRPs, Dispatch Routines being internally handled by
    NDIS?
    Probably DDK also doesn’t say anything about the relationship between these
    two architectures?
  2. If they are different architectures, then can I assume that there are
    broadly five driver models (as elaborated in Art Baker and Jerry Lozano) :
    WDM, Video, Network, Printer and Multimedia.

Amit Manocha

Hi Amit,

             See inline. I think it will clear ur doubt.

Good Luck,



From: “Amit Manocha”

>Reply-To: “NT Developers Interest List”
>To: “NT Developers Interest List”
>Subject: [ntdev] NDIS IM Drivers Architecture?
>Date: Thu, 8 May 2003 14:43:26 +0530
>
>I have following doubts about Windows Device Driver architecture:
>
>1. In all of the standard books of Windows Device Drivers, I came across the
>concepts of I/O Request Packet, AddDevice,Dispatch routines etc. But none of
>these are coming into picture in NDIS IM driver model. Is is different
>driver model than the standard one (WDM)? If not, then how is it fitting
>into WDM picture? Are IRPs, Dispatch Routines being internally handled by


>NDIS?



[Yogi]Yes, Amit it is only for the Network Drivers. But NDIS is directly interacting with the IO manager to give an abstraction to the network drivers. And it must be there so that whoever(any third party vendor of the NIC device implementer) is designing the driver shud not design the driver in the different way. So this layer(NDIS) giving the common way to handle the IO manager and device. If u implement the driver using various NDIS it takes care of many things like house keeping of the OS resource taken by the NIC driver and all, and provide a simple way and faster way to create driver in the kernel.



Yes, u got the hold of NDIS. The dispatch routines are taken care by the NDIS.



>Probably DDK also doesn’t say anything about the relationship between these


>two architectures?



[Yogi] It shud not, because if it tells then is creates more comfusion in the developer.



>2. If they are different architectures, then can I assume that there are
>broadly five driver models (as elaborated in Art Baker and Jerry Lozano) :


>WDM, Video, Network, Printer and Multimedia.



[Yogi] See there are only two broad driver architecture as Kernel Mode(Which is fully Kernel dependent) and another is WDM(Platform independent). These modals(what u mentioned as “Video, Network, Printer and Multimedia”) are super set to these(Kernel and WDM) in the functionality wise.



>Amit Manocha
>
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Want to get married? Try online matrimony. It’s cool.

> concepts of I/O Request Packet, AddDevice,Dispatch routines etc. But
none of

these are coming into picture in NDIS IM driver model. Is is
different
driver model than the standard one (WDM)? If not, then how is it
fitting
into WDM picture? Are IRPs, Dispatch Routines being internally
handled by
NDIS?

NDIS does not use IRPs for data flow - send and receives. Surely,
NDIS.SYS creates the device objects for network adapters internally to
plug them to PnP infrastructure, and handles the PnP/Power/WMI IRPs
for them.

Max