RE: NDIS IM Driver

Hi Bryan,
While installing the IM driver we see that the driver
is bound to a maximum of two adapters. Apart from
that the system also pops up dialogs like “Your system
allows a maxium of 6 TCP/IP instances” and “Your
system allows a maxium of 8 instances”.

We used the inf sample you had given where some
entries that you might want to know are

Protocol: MaxInstance = 4
Protocol: HKR,Ndi,MaxInstance,8
Miniport: MaxInstance = 8
Miniport: HKR,Ndi,MaxInstance,8

We also tried installing it after changing
MaxInstances to 8, 16, 16, 16 respectively for the
above inf entries. We also changed the max instances
of TCP/IP to 8 in the nettrans.inf file. Even then
the IM driver binds to only two adapters.

So, if there are more than 2 adapters how may we
install and bind our IM driver to all the adapters?

Thanks and regards
Murali

— Bryan Burgin wrote:
> Quick reply: The copy should be okay. I did a
> little work with the
> ‘co-installer’ in 9x. It’s really the MyNdi sample
> – and must be built
> inside the IDE of VC 1.52c. Its biggest problem is
> that it doesn’t get
> global notifications like you would expect in the
> 2000/XP world, so you
> can’t break the original binding between TCPIP and
> the real miniport.
> But I didn’t spend too much time on that, so you
> might be able to find a
> workable solution. If you do, perhaps you can pass
> it onto me…
>
> Bryan S. Burgin
> xxxxx@microsoft.com
> 40/2241 x58049
>
>
> -----Original Message-----
> From: Murali S [mailto:xxxxx@yahoo.com]
> Sent: Monday, July 01, 2002 5:57 AM
> To: Bryan Burgin
> Subject: RE: [ntdev] NDIS IM Driver
>
> Hello Bryan,
> NdisCopyPacketToPacket is failing on 98 so i did
> a
> manual copy like getting the virtual address of eack
> of the NDIS_BUFFER of the NDIS_PACKET and calling
> NdisMoveMemory. Is this OK. There is no return value
> for NdisCopyPacketToPacket. I am not able to find
> out
> the reason for this.
> Another problem is with the loading of the
> driver.
> If you have done any work on the coinstaller for
> win98
> can you please pass on to me. It will be a great
> help.
>
> regards,
> Murali
>
>
> — Bryan Burgin wrote:
> > I am just swamped and don’t have a lot of time to
> > look at this. But off
> > the top of my head, I get very nervous when I see
> > manually touching of
> > NDIS_PACKET or NDIS_BUFFER structures. As I
> recall,
> > the structure of an
> > NDIS_PACKET is slightly different (by four or
> eight
> > bytes, as I recall)
> > between Windows 9x/ME and 2000/XP. Again, this
> was
> > three years ago I
> > once noticed a difference in the
> Protocol->Reserverd
> > area. Perhaps you
> > can dump – as bytes – the structure and compare
> to
> > what you think you
> > have.
> >
> > This is not a problem that others have run into.
> > But, then again, they
> > may not be doing the same thing.
> >
> > Hope this helps.
> >
> > Bryan S. Burgin
> > xxxxx@microsoft.com
> >
> > This posting is provided “AS IS” with no
> warranties,
> > and confers no
> > rights.
> >
> > -----Original Message-----
> > From: Murali S [mailto:xxxxx@yahoo.com]
> > Sent: Wednesday, June 26, 2002 12:58 PM
> > To: Bryan Burgin
> > Subject: RE: [ntdev] NDIS IM Driver
> >
> > Bryan Burgin,
> >
> >
> > Thanks for your suggestion. The IM driver is
> working
> > fine with the two nic cards also.
> >
> > Now i am facing one more problem
> >
> > In the MpSendPackets() insted of using this
> >
> >
> >
>
//
> > NdisAllocatePacket(&Status, &MyPacket,
> > pAdapt->SendPacketPoolHandle);
> >
> > if (Status == NDIS_STATUS_SUCCESS)
> > {
> > PNDIS_PACKET_EXTENSION Old, New;
> >
> > Rsvd = (PRSVD)(MyPacket->ProtocolReserved);
> > Rsvd->OriginalPkt = Packet;
> >
> > MyPacket->Private.Flags =
> > NdisGetPacketFlags(Packet);
> > MyPacket->Private.Head = Packet->Private.Head;
> > MyPacket->Private.Tail = Packet->Private.Tail;
> > MyPacket->Private.ValidCounts = FALSE;
> >
> > //
> > //Copy the OOB data from the original packet to
> the
> > new
> > // packet.
> > //
> >
> NdisMoveMemory(NDIS_OOB_DATA_FROM_PACKET(MyPacket),
> > NDIS_OOB_DATA_FROM_PACKET(Packet),
> > sizeof(NDIS_PACKET_OOB_DATA));
> > //
> > // Copy relevant parts of the per packet info into
> > the
> >
> > //new packet
> > //
> > #ifndef WIN9X
> > NdisIMCopySendPerPacketInfo(MyPacket, Packet);
> > #endif
> >
> > //
> > // Copy the Media specific information
> > //
> > NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(Packet,
> > &MediaSpecificInfo,
> > &MediaSpecificInfoSize);
> >
> > if (MediaSpecificInfo || MediaSpecificInfoSize)
> > {
> > NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(MyPacket,
> > MediaSpecificInfo,
> > MediaSpecificInfoSize);
> > }
> >
> > NdisSend(&Status,
> > pAdapt->BindingHandle,
> > MyPacket);
> >
> > if (Status != NDIS_STATUS_PENDING)
> > {
> > #ifndef WIN9X
> > NdisIMCopySendCompletePerPacketInfo (Packet,
> > MyPacket);
> > #endif
> > NdisFreePacket(MyPacket);
> > }
> > }
> >
>
/
/
> >
> >
> > i tried to modify this part to duplicate the
> packet
> > with out reference to the original packet with
> this
> >
> >
>
/ ***************************************************** /
> > NdisAllocatePacket(&Status, &MyPacket,
> > pAdapt->SendPacketPoolHandle);
> > if (Status == NDIS_STATUS_SUCCESS)
> > {
> > NdisQueryPacket (Packet, 0, NULL, NULL,
> > &PaktetSize);
> > NdisAllocateMemoryWithTag(&newbuf, PacketSize,
> TAG);
> > if (newbuf == NULL)
> > {
> > NdisFreePacket (MyPacket);
> > NdisMSendComplete(NIC_MINIPORT_HANDLE(pnic),
> > Packet,
> > NDIS_STATUS_SUCCESS);
> > }
> > /*
> > * Allocate the buffer header and pkt header
> > */
> > NdisAllocateBuffer(&status,
> > &nbufp,
> > pAdapt->…,
> > newbuf,
> > pktsz);
> >
> > if (status != NDIS_STATUS_SUCCESS)
>
=== message truncated ===

__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com