showyou
驱动牛犊
驱动牛犊
  • 注册日期2003-05-03
  • 最后登录2008-01-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1237回复:1

我哪里错了?哪位大虾帮我指点一下!

楼主#
更多 发布于:2003-07-01 08:16
下面是我的代码,但是不知道为什么输出的值就是不对,谁能告诉我该怎么改?谢谢!

DWORD myinfo::IoctlNdisQueryTest(LPCTSTR lpAdapterName)
{

    UCHAR       OidData[4096];
    DWORD       nResult, ReturnedCount = 0;


nResult = Test_IoctlNdisQueryGlobalStats(lpAdapterName,OID_802_11_STATISTICS,OidData,sizeof(OidData),&ReturnedCount);
if( nResult != ERROR_SUCCESS )
sprintf(sLabel,\"%s\",\"The driver unsupported\");
   else
sprintf(sLabel,\"%d-%d\",OidData[1],OidData[10]);// 错误的数据输出!!!!!!
m_temp.SetWindowText(sLabel);

nResult = Test_IoctlNdisQueryGlobalStats(lpAdapterName,OID_802_11_SSID,OidData,sizeof(OidData),&ReturnedCount);
if( nResult != ERROR_SUCCESS )
sprintf(sLabel,\"%s\",\"The driver unsupported\");
   else
sprintf(sLabel,\"%d-%s\",OidData[],OidData[1]);//错误的数据输出!!!!!! m_temp.SetWindowText(sLabel);

    return( nResult );
}

DWORD myinfo::Test_IoctlNdisQueryGlobalStats(
   LPCTSTR  lpAdapterName,
   ULONG    OidCode,
   PVOID    InformationBuffer,
   UINT     InformationBufferLength,
   PULONG    pBytesWritten)
{
    CHAR       LinkName[512];
    CHAR       szMACFileName[512];
    BOOLEAN    bCreatedDevice = FALSE;
    DWORD      ErrorNumber, nResult = ERROR_SUCCESS;
    HANDLE     hMAC;

   *pBytesWritten = 0;

   strcpy( LinkName, \"\\\\Device\\\\\" );
   strcat( LinkName, lpAdapterName );
   strcpy(szMACFileName, DEVICE_PREFIX);
   strcat(szMACFileName, lpAdapterName);

   hMAC = CreateFile(szMACFileName,0,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,INVALID_HANDLE_VALUE);

   if (hMAC != INVALID_HANDLE_VALUE)

  if(!DeviceIoControl(hMAC,IOCTL_NDIS_QUERY_GLOBAL_STATS,&OidCode,
sizeof(OidCode),InformationBuffer,InformationBufferLength, pBytesWritten,NULL))
printf(\"   DeviceIoControl returned an error = %d\\n\",nResult = GetLastError());
  else
     printf(\"   CreateFile returned an error = %d\\n\",nResult = GetLastError());

   if (bCreatedDevice)

  if (!DefineDosDevice(DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION
|DDD_EXACT_MATCH_ON_REMOVE,lpAdapterName,LinkName)){
  ErrorNumber = GetLastError();
  printf(\"DefineDosDevice returned an error creating the device = %d\\n\", ErrorNumber);
  return( ErrorNumber );
       }
    
   return( nResult );
}

tzhou66
驱动牛犊
驱动牛犊
  • 注册日期2003-10-04
  • 最后登录2009-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-25 12:55
You do not use DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE together, if create device, use DDD_RAW_TARGET_PATH, if remove device, use DDD_REMOVE_DEFINITION or DDD_EXACT_MATCH_ON_REMOVE.
游客

返回顶部