Hi Joe! Thanks for your help!

What happens is that I had code that worked on Windows 2000 and it did 
no longer work on PPC.
Not only did I have to add the initialization and termination routines, 
but I also had to check if ulBytesReceived>0. This wasn't supposed to 
happend because I tell it to wait forever for a valid packet by calling: 
PacketSetReadTimeout(&adapter, 0)

About sending packets, I seem to follow the same steps you do and 
sometimes it does work, but most times it hangs and I have to reset the 
iPaq. I have only the main thread and I don't event try to receive a 
single packet, but it still hangs.

Well, at least someone made it work!

Thanks,

Carlos


Joe Meilak wrote:
> I don't know about your first issue, because I simply
> loop calling PacketReceivePacket( ) and check the
> pkt.ulBytesReceived member to see if it is non-zero.
> 
> I was able to successfully send a packet using
> PacketSendPacket( ) on Pocket PC 2002 using a Symbol
> Spectrum 24 wireless LAN card on a Toshiba e570.  The
> code fragments are as follows:
> 
> PACKET pkt;
> ::ZeroMemory( &pkt, sizeof( pkt ) );
> 
> // Prepare buffer containing Ethernet frame here...
> In my case it goes into a variable named "mas"
> 
> // Prepare packet for driver.
> PVOID pbyBuf = (PVOID) &mas;
> ::PacketInitPacket( &pkt, pbyBuf, sizeof( mas ) );
> 
> // Send only 1 copy (although it appears WinPcap sends
> 2 nonetheless).
> ::PacketSetNumWrites( m_pAdapter, 1 );
> 
> // Transmit the packet.
> ::PacketSendPacket( m_pAdapter, &pkt, TRUE );
> 
> This seems to work for me.  One thing I do, however,
> is execute this code on the same thread that does the
> listening (i.e., the one that calls
> PacketReceivePacket( )).  That way I won't be trying
> to write and read data from the driver simultaneously.
> 
> Joe


______________________________________________________________________________
mensaje enviado desde http://www.iespana.es
emails (pop)-paginas web (espacio ilimitado)-agenda-favoritos (bookmarks)-foros -Chat

Reply via email to