none
Can I install two nids drivers , to pass through one working ndis driver , to send and recveive packet? RRS feed

  • Question

  • Hi all,

    Can I install two nids drivers , to pass through one working ndis driver , to send and recveive packet?

    just like :

            ....

            NDIS1

            some NDIS

            NDIS2

            ....

    I wanna  packet can not  pass to  "some NDIS" , but not remove "some NDIS"  from network stack. Is it can? Thanx.

    Thursday, January 23, 2014 9:27 AM

Answers

  • You'll need two different filter drivers: one to bind above and the other to bind below the target filter driver.  Look at the FilterClass of the target filter and select adjacent filter classes.  For example, if the target filter has class vpn, then you can use compression and loadbalance to bracket the target filter.

    Each filter driver should register itself in some global location, indexed by MiniportPhysicalDeviceObject.  You should have 1 upper and 1 lower filter per MiniportPhysicalDeviceObject.

    When your lower filter receives a packet, it should check if there exists an upper filter with the same MiniportPhysicalDeviceObject.  If so, give the packet to that upper filter.  Likewise on the return path.

    Note that you need to be careful with Pause.  When the upper filter begins pausing, it needs to stop indicating up packets from the lower filter.

    Friday, January 24, 2014 4:02 AM

All replies

  • Can you give more specifics?  What kind of driver is "some NDIS" - is it a miniport, protocol, or filter?  What are you trying to accomplish?
    Thursday, January 23, 2014 10:21 PM
  • a filter driver.thanx. 

    Friday, January 24, 2014 2:33 AM
  • I wanna skip this working filter ndis driver , to send and receive packets, how do it?

    Friday, January 24, 2014 2:34 AM
  • You'll need two different filter drivers: one to bind above and the other to bind below the target filter driver.  Look at the FilterClass of the target filter and select adjacent filter classes.  For example, if the target filter has class vpn, then you can use compression and loadbalance to bracket the target filter.

    Each filter driver should register itself in some global location, indexed by MiniportPhysicalDeviceObject.  You should have 1 upper and 1 lower filter per MiniportPhysicalDeviceObject.

    When your lower filter receives a packet, it should check if there exists an upper filter with the same MiniportPhysicalDeviceObject.  If so, give the packet to that upper filter.  Likewise on the return path.

    Note that you need to be careful with Pause.  When the upper filter begins pausing, it needs to stop indicating up packets from the lower filter.

    Friday, January 24, 2014 4:02 AM