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
