I think you need to watch for the power management messages and stop processing when its going to sleep, and then wait until it resumes.
http://msdn.microsoft.com/en-us/library/Aa373247 Michael D. Black Senior Scientist NG Information Systems Advanced Analytics Directorate ________________________________ From: [email protected] [[email protected]] on behalf of Charlie Heitzig [[email protected]] Sent: Tuesday, January 25, 2011 7:04 AM To: [email protected] Subject: EXTERNAL:Re: [Winpcap-users] PacketReceivePacket error? Bit of an update to my problem-- the computer was going to Sleep (Windows Sleep mode). Question for the group though-- it appears I can't just use my existing connection to the NIC once WIndows has slept/woken up. Do I need to close the connection and re-open completely? --> C On Sun, Jan 23, 2011 at 11:43 AM, Charlie Heitzig <[email protected]<mailto:[email protected]>> wrote: Looking for some thoughts on trouble-shooting a problem. First though, I'm a bit of a newbie to Winpcap. For background, I have a C program that is failing with a PacketReceivePacket error under Cygwin on Windows 7 x64. To better illustrate the problem, I built a debug / test harness around one of the Winpcap code samples-- basic_dump_ex.c (full modified version attached). I modified the last bit of code to loop and re-run pcap_next_ex() after an error: while((res = pcap_next_ex( adhandle, &header, &pkt_data)) >= 0){ if(res == 0) /* Timeout elapsed */ continue; /* convert the timestamp to readable format */ local_tv_sec = header->ts.tv_sec; ltime=localtime(&local_tv_sec); strftime( timestr, sizeof timestr, "%H:%M:%S", ltime); printf("%s,%.6d len:%d\n", timestr, header->ts.tv_usec, header->len); } if(res == -1){ printf("Error reading the packets: %s\n", pcap_geterr(adhandle)); /* Try the next packet one more time */ if((res = pcap_next_ex( adhandle, &header, &pkt_data)) == -1) printf("Second error reading the packets: %s\n", pcap_geterr(adhandle)); return -1; } But res never again returns a non-negative number as far as I can tell (even if I loop endlessly, continuously trying to get another packet. So that's my question, I guess-- is any error recovery possible after receiving a PacketReceivePacket error? Any advice on what a PacketReceivePacket error means-- bad NIC, bad router, cosmic rays? If I kill the program and re-start immediately, everything runs again for somewhere between 2 and 36 hours or so. Any thoughts would be appreciated! Best, --> C
_______________________________________________ Winpcap-users mailing list [email protected] https://www.winpcap.org/mailman/listinfo/winpcap-users
