阅读:1237回复:1
我哪里错了?哪位大虾帮我指点一下!
下面是我的代码,但是不知道为什么输出的值就是不对,谁能告诉我该怎么改?谢谢!
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 ); } |
|
沙发#
发布于: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.
|
|