Hi All,
I am using passthru intermediate driver.I have written an
application which on a connect(NDIS_STATUS_MEDIA_CONNECT) notification from
my intermedaite driver, will send data using sockets.
What i noticed is though the device status is connected(it
throws a ballon saying LAN is connected) and it is assigned an IP, it takes
some time(2 to 4 secs) to send packets.The NdisSend function which is called
by my intermediate driver returns success and actually the data is not sent
across network.
Because of this behaviour send funtion of socket succeds but
the data is not sent. But after 2 to 4 seconds i am able to send data.I am
using intel's LAN card. could anyone tell me whether it is a hardware problem
or is there any NDIS events which can tell me the card is ready for data
transfer?
Thanks and Regards,
Senthil

RE: NDIS-device status by pavel_a

pavel_a
Wed Jul 06 09:45:10 CDT 2005

Not enough information...
Do you just pass up the media status indication of the Intel card?
Does your IM properly reply to OID_GEN_MEDIA_CONNECT_STATUS
and other OIDs relevant to send (link speed, tx buffer size etc.)?

Regards,
--PA

"Senthil" wrote:
> Hi All,
> I am using passthru intermediate driver.I have written an
> application which on a connect(NDIS_STATUS_MEDIA_CONNECT) notification from
> my intermedaite driver, will send data using sockets.
> What i noticed is though the device status is connected(it
> throws a ballon saying LAN is connected) and it is assigned an IP, it takes
> some time(2 to 4 secs) to send packets.The NdisSend function which is called
> by my intermediate driver returns success and actually the data is not sent
> across network.
> Because of this behaviour send funtion of socket succeds but
> the data is not sent. But after 2 to 4 seconds i am able to send data.I am
> using intel's LAN card. could anyone tell me whether it is a hardware problem
> or is there any NDIS events which can tell me the card is ready for data
> transfer?
> Thanks and Regards,
> Senthil
>
>

Re: NDIS-device status by Maxim

Maxim
Wed Jul 06 15:31:12 CDT 2005

This is by design. The DHCP state machine needs some time to be executed. I
think that you can register for TDI-level IP address arrival notifications
instead of NDIS-level ones.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com

"Senthil" <Senthil@discussions.microsoft.com> wrote in message
news:0E00B809-ACEE-4A0D-BCF9-A181B08CDFD5@microsoft.com...
> Hi All,
> I am using passthru intermediate driver.I have written an
> application which on a connect(NDIS_STATUS_MEDIA_CONNECT) notification from
> my intermedaite driver, will send data using sockets.
> What i noticed is though the device status is connected(it
> throws a ballon saying LAN is connected) and it is assigned an IP, it takes
> some time(2 to 4 secs) to send packets.The NdisSend function which is called
> by my intermediate driver returns success and actually the data is not sent
> across network.
> Because of this behaviour send funtion of socket succeds but
> the data is not sent. But after 2 to 4 seconds i am able to send data.I am
> using intel's LAN card. could anyone tell me whether it is a hardware problem
> or is there any NDIS events which can tell me the card is ready for data
> transfer?
> Thanks and Regards,
> Senthil
>
>



Re: NDIS-device status by Alireza

Alireza
Thu Jul 07 01:33:08 CDT 2005

This may also be because the NIC driver is still negotiating with switch on
speed, etc.

-ali

--
This posting is provided "AS IS" with no warranties, and confers no rights.

"Senthil" <Senthil@discussions.microsoft.com> wrote in message
news:0E00B809-ACEE-4A0D-BCF9-A181B08CDFD5@microsoft.com...
> Hi All,
> I am using passthru intermediate driver.I have written an
> application which on a connect(NDIS_STATUS_MEDIA_CONNECT) notification
> from
> my intermedaite driver, will send data using sockets.
> What i noticed is though the device status is
> connected(it
> throws a ballon saying LAN is connected) and it is assigned an IP, it
> takes
> some time(2 to 4 secs) to send packets.The NdisSend function which is
> called
> by my intermediate driver returns success and actually the data is not
> sent
> across network.
> Because of this behaviour send funtion of socket succeds
> but
> the data is not sent. But after 2 to 4 seconds i am able to send data.I am
> using intel's LAN card. could anyone tell me whether it is a hardware
> problem
> or is there any NDIS events which can tell me the card is ready for data
> transfer?
> Thanks and Regards,
> Senthil
>
>



Re: NDIS-device status by Senthil

Senthil
Thu Jul 07 08:03:09 CDT 2005

what i am doing is my user level application will wait for an event from
intermediate driver(NDIS_STAUTS_MEDIA_CONNECT). my intermediate driver will
notify the application whenever it receives a NDIS_STAUTS_MEDIA_CONNECT. On
receiving the notification, application will wait for route change
notification (NotifyAddrChange) to make sure that ip address is assigned then
it will start sending data using sockets.

This works fine if i leave the ip address assignment to
DHCP. It does not work if i assign a static ip address to the LAN card. what
happens is once i unplug the network cable my appliation will be notified and
it won't send data. If i plug the cable the miniport driver will send
NDIS_STAUTS_MEDIA_CONNECT to intermediate driver which after passing it to
protocol driver, will notify application.

Then my application will wait for route chane to make sure that ip
address is assigned.In case of DHCP, it will wait till ip address is
assingned( say 5 secs). once ip address is assigned, it starts sending data.
In case of static IP, application as soon as it receives
NDIS_STAUTS_MEDIA_CONNECT from intermediate driver ,it gets rotue change
notification(Windows throws a ballon saying LAN is connected,it is thrown
after it is assigned an ip address.initially ip address will be 0.0.0.0 then
it will change to the ip address which i have assigned) then it starts
sending data. The data reaches intermediate driver which it will send to
miniport using NdisSend. NdisSend returns success but the packet is not
transmitted.It happens for 2 to 3 secs and then it starts working fine.

one thing i noticed is if i connect two machines directly using a
cable it works fine. when i connect the cable to switch(ours is star
topology) it does not work. Does the kind of network(CSMA/CD) play a role
here?Could be of great help if u could tell me how can i overcome this.
Thanks,
Senthil


"Maxim S. Shatskih" wrote:

> This is by design. The DHCP state machine needs some time to be executed. I
> think that you can register for TDI-level IP address arrival notifications
> instead of NDIS-level ones.
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> maxim@storagecraft.com
> http://www.storagecraft.com
>
> "Senthil" <Senthil@discussions.microsoft.com> wrote in message
> news:0E00B809-ACEE-4A0D-BCF9-A181B08CDFD5@microsoft.com...
> > Hi All,
> > I am using passthru intermediate driver.I have written an
> > application which on a connect(NDIS_STATUS_MEDIA_CONNECT) notification from
> > my intermedaite driver, will send data using sockets.
> > What i noticed is though the device status is connected(it
> > throws a ballon saying LAN is connected) and it is assigned an IP, it takes
> > some time(2 to 4 secs) to send packets.The NdisSend function which is called
> > by my intermediate driver returns success and actually the data is not sent
> > across network.
> > Because of this behaviour send funtion of socket succeds but
> > the data is not sent. But after 2 to 4 seconds i am able to send data.I am
> > using intel's LAN card. could anyone tell me whether it is a hardware problem
> > or is there any NDIS events which can tell me the card is ready for data
> > transfer?
> > Thanks and Regards,
> > Senthil
> >
> >
>
>
>

Re: NDIS-device status by fat_boy

fat_boy
Fri Jul 08 04:08:31 CDT 2005

If you have a network snoop, have a look at any data being exchanged
over the wire. There could be traffic exchanged between the NIC and
switch that is keeping it busy.