当前位置: 代码迷 >> WinCE >> CS8900网卡驱动ping不通,该怎么处理
  详细解决方案

CS8900网卡驱动ping不通,该怎么处理

热度:11   发布时间:2016-04-28 12:48:18.0
CS8900网卡驱动ping不通
说一下我的问题,利用网卡进行镜像加载时没有问题,所以说硬件连接方面应该没啥问题,问题应该出现在网卡驱动之中。
查看串口调试信息,报错为
PING: transmit failed, error code 11010
这是利用WINCE上的ping命令ping pc主机的得到的问题,在进行ping操作时,这两台机器是利用路由器进行连接的,网线连接方面应该没啥错
查看代码报错处出现在PING.c文件中
SendOpts.OptionsData = Opt;
  SendOpts.OptionsSize = OptLength;
  SendOpts.Ttl = TTL;
  SendOpts.Tos = TOS;
  SendOpts.Flags = Flags;

  do {
  getnameinfo((LPSOCKADDR)&address, addressLen, literal, sizeof(literal),
  NULL, 0, NI_NUMERICHOST);
   
  if (hostname[0])
  {
  if(source[0])
  OutputMessage(TEXT("Pinging Host %hs [%hs]\r\nfrom %hs\r\n"), hostname, literal, source);
  else
  OutputMessage(TEXT("Pinging Host %hs [%hs]\r\n"), hostname, literal);
  }
  else
  {
  if(source[0])
  OutputMessage(TEXT("Pinging Host %hs\r\nfrom %hs\r\n"), literal, source);
  else
  OutputMessage(TEXT("Pinging Host %hs\r\n"), literal);
  }
   
  for (i = 0; i < Count; i++)
  {
  if(address.ss_family == AF_INET)
  {
  numberOfReplies = IcmpSendEcho(hIcmp, ((LPSOCKADDR_IN)&address)->sin_addr.s_addr,
SendBuffer, (unsigned short) SendSize,
&SendOpts, RcvBuffer, RcvSize, Timeout);
//在该处进行返回值判断是出错
   
  if (numberOfReplies == 0)
  {
  errorCode = GetLastError();
   
  OutputMessage(TEXT("PING: transmit failed, error code %lu\r\n"),
  errorCode);
  }
  else
  {
  totalReplies += numberOfReplies;
   
  reply4 = (PICMP_ECHO_REPLY) RcvBuffer;
   
  while (numberOfReplies--)
  {
  pszCur = szOutBuf;
   
  pszCur += wsprintf(pszCur, TEXT("Reply from %hs: "), literal);
   
  if (reply4->Status == IP_SUCCESS)
  {
   
  pszCur += wsprintf(pszCur, TEXT("Echo size=%d "), reply4->DataSize);
   
  if (reply4->DataSize != SendSize)
  {
  pszCur += wsprintf(pszCur, TEXT("(sent %d) "), SendSize);
  }
  else
  {
  char *sendptr, *recvptr;
   
  sendptr = &(SendBuffer[0]);
  recvptr = (char *) reply4->Data;
   
  for (j = 0; j < SendSize; j++)
  if (*sendptr++ != *recvptr++)
  {
  pszCur += wsprintf(pszCur, TEXT("- MISCOMPARE at offset %d - "), j);
  break;
  }