有没有大学生来了森森的微博的?帮忙发个微博就给20-50元,几分钟的事情。

USB的八个问题和答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
USB的八个问题和答案
上传于||文档简介
&&U​S​B​的​八​个​问​题​和​答​案
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢21ic官方微信-->
后使用快捷导航没有帐号?
查看: 3093|回复: 14
HID设备读写出错
&&已结帖(1)
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
小弟在做一个HID设备,现在是用USB调试工具出现如下情况,请问有没有遇到的朋友,如何修改我的下位机程序才能实现读写HIDUSB设备成功
满意回复+1
应该是报告描述符的事情,不要把设备描述为鼠标或者键盘等系统独占设备(只有系统有权限访问,简单的create和writefile、readfile是无法访问的)
把设备描述为用 ...
本帖子中包含更多资源
才可以下载或查看,没有帐号?
主题帖子积分
资深工程师, 积分 10493, 距离下一级还需 9507 积分
资深工程师, 积分 10493, 距离下一级还需 9507 积分
主题帖子积分
专家等级:结帖率:22%打赏:0.20受赏:566.10
主题帖子积分
资深工程师, 积分 10493, 距离下一级还需 9507 积分
资深工程师, 积分 10493, 距离下一级还需 9507 积分
软件界面很好!
可以用bus hound
大秦正声电子之家
http://yang96381.
提供蓝牙、zigbee芯片批量生产烧录服务:1带3脱机烧录工具,支持cc2540/cc2541,cc2530/cc2531,最新支持nrf51822,cc2650,cc2640,cc2630
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
我想请问下,如何实修改我的下位机代码,才能实现我的设备读取,我用的是AVR模拟的USB?
主题帖子积分
实习生, 积分 31, 距离下一级还需 19 积分
实习生, 积分 31, 距离下一级还需 19 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 31, 距离下一级还需 19 积分
实习生, 积分 31, 距离下一级还需 19 积分
本帖最后由 y5664579 于
15:36 编辑
描述符的事情
主题帖子积分
实习生, 积分 31, 距离下一级还需 19 积分
实习生, 积分 31, 距离下一级还需 19 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 31, 距离下一级还需 19 积分
实习生, 积分 31, 距离下一级还需 19 积分
别用这种没谱的调试工具比较好
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
y5664579 发表于
别用这种没谱的调试工具比较好
我将描述符也做了修改的,不知道我的修改是否正常,请问我用什么调试工具比较好呀,诸如BUSHOUND嘛,可是我进行了尝试,上面连立端点都无法查找到!请问能否详细介绍下如何进行修改与调试?
主题帖子积分
中级技术员, 积分 232, 距离下一级还需 68 积分
中级技术员, 积分 232, 距离下一级还需 68 积分
主题帖子积分
专家等级:结帖率:73%
主题帖子积分
中级技术员, 积分 232, 距离下一级还需 68 积分
中级技术员, 积分 232, 距离下一级还需 68 积分
缘分啊 楼主!
小弟也在纠结同样的问题啊,我用USB_Hound发送Set_Report指令时可以收到数据的,但是用调试软件,也出现和你一样的现象 ,等高手来解决啊!
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
请问你也是在用AVR模拟USB的嘛?
主题帖子积分
中级技术员, 积分 232, 距离下一级还需 68 积分
中级技术员, 积分 232, 距离下一级还需 68 积分
主题帖子积分
专家等级:结帖率:73%
主题帖子积分
中级技术员, 积分 232, 距离下一级还需 68 积分
中级技术员, 积分 232, 距离下一级还需 68 积分
不是的,我是用带有USB接口的cortex m0系列芯片。但是与你的问题是一样的。
主题帖子积分
助理工程师, 积分 1767, 距离下一级还需 233 积分
助理工程师, 积分 1767, 距离下一级还需 233 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1767, 距离下一级还需 233 积分
助理工程师, 积分 1767, 距离下一级还需 233 积分
这是个什么工具啊,没有用过。
你做的HID设备不用上位机软件的吗?你自己调用一下HID的api不就就知道问题了吗?
主题帖子积分
中级技术员, 积分 232, 距离下一级还需 68 积分
中级技术员, 积分 232, 距离下一级还需 68 积分
主题帖子积分
专家等级:结帖率:73%
主题帖子积分
中级技术员, 积分 232, 距离下一级还需 68 积分
中级技术员, 积分 232, 距离下一级还需 68 积分
应该是报告描述符的事情,不要把设备描述为鼠标或者键盘等系统独占设备(只有系统有权限访问,简单的create和writefile、readfile是无法访问的)
把设备描述为用户自定义设备,我记得代码是0x01,这样就可以访问了。
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
恋子炎 发表于
应该是报告描述符的事情,不要把设备描述为鼠标或者键盘等系统独占设备(只有系统有权限访问,简单的create ...
谢谢谢你的指点
主题帖子积分
中级技术员, 积分 155, 距离下一级还需 145 积分
中级技术员, 积分 155, 距离下一级还需 145 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级技术员, 积分 155, 距离下一级还需 145 积分
中级技术员, 积分 155, 距离下一级还需 145 积分
楼主,你的工具软件很强大,可否发给我用用,。我的邮箱 cz1129
主题帖子积分
初级技术员, 积分 79, 距离下一级还需 21 积分
初级技术员, 积分 79, 距离下一级还需 21 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 79, 距离下一级还需 21 积分
初级技术员, 积分 79, 距离下一级还需 21 积分
请问楼主解决了没有啊,我也遇到同样的问题了
主题帖子积分
中级技术员, 积分 186, 距离下一级还需 114 积分
中级技术员, 积分 186, 距离下一级还需 114 积分
主题帖子积分
专家等级:结帖率:87%
主题帖子积分
中级技术员, 积分 186, 距离下一级还需 114 积分
中级技术员, 积分 186, 距离下一级还需 114 积分
遇到同样的问题了,楼主有没有解决啊
技术高手奖章
人才类勋章
时间类勋章
无冕之王奖章
等级类勋章
奔腾之江水
发帖类勋章
技术奇才奖章
人才类勋章
时间类勋章
技术新星奖章
人才类勋章
时间类勋章
热门推荐 /3博客访问: 185917
博文数量: 43
博客积分: 2000
博客等级: 大尉
技术积分: 452
注册时间:
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
源代码如下:(生成.dll .lib)
1.MCDInterface.h
/**MCDInterface.h*author:*data:*/
#ifndef MCDBOX_H_INCLUDED#define MCDBOX_H_INCLUDED
#pragma once
#define&&&& MCD_IOCTRL_OPEN_SIG& 0x1001#define&&&& MCD_IOCTRL_CLOSE_SIG 0x1002#define&&MCD_IOCTRL_FIND_SIG& 0x1003
#define&&&& MCD_IOCTRL_READY&&&& 0x1003#define&&&& MCD_IOCTRL_UNREADY&& 0x1004
#define&&KEY_0&&& 0x3A#define&&KEY_1&&& 0x3B#define&&KEY_2&&& 0x3C#define&&KEY_3&&& 0x3D#define&&KEY_4&&& 0x3E#define&&KEY_5&&& 0x3F#define&&KEY_6&&& 0x40#define&&KEY_7&&& 0x41#define&&KEY_8&&& 0x42#define&&KEY_9&&& 0x43#define&&KEY_STAR&& 0x44#define&&KEY_POUND&& 0x45
#define&&&& MSG_HOOKOFF&&&&& 0x16#define&&&& MSG_HOOKON&&&&&& 0x12#define&&&& MSG_RINGING&&&&& 0x15
#define&&HID_DEVICE_REMOVE&0x76 //硬件被移走
#define&&&& CLIENT_READY_WRITE_SIG 0x92&& //通知设备软件正在运行,每隔一段时间向缓冲区写该数据
#define DLL_EXPORT __declspec(dllexport)#define DLL_IMPORT __declspec(dllimport)
//定义用于回调的枚举消息enum{&&& MCD_CALLBACK_MSG_VERSION,//not used&&& MCD_CALLBACK_MSG_SERIALNO,//not used
&MCD_CALLBACK_DEVICE_FOUND,&MCD_CALLBACK_DEVICE_NOT_FOUND,&MCD_CALLBACK_DEVICE_REMOVE,
&&& MCD_CALLBACK_KEYDOWN,&&& MCD_CALLBACK_KEYBUFFER_CHANGED,
&&& MCD_CALLBACK_HOOKOFF,&&& MCD_CALLBACK_HOOKON,&&& MCD_CALLBACK_RINGING,
&&& MCD_CALLBACK_MSG_WARNING = -2,&&& MCD_CALLBACK_MSG_ERROR = -1,};
DLL_EXPORT unsigned long MCD_DeviceIoControl(unsigned long dwIoControlCode,&&void*&lpInBuffer = 0,&&unsigned long nInBufferSize = 0,&&void*&lpOutBuffer = 0,&unsigned long nOutBufferSize = 0);
//定义设备状态返回信息enum{&&& MCD_RETURN_SUCCESS = 0,&MCD_RETURN_FOUND_HID,&&& MCD_RETURN_NO_FOUND_HID,
&&& MCD_RETURN_HID_IS_OPENED,//?&&& MCD_RETURN_HID_NO_OPEN,//?};
#endif // MCDBOX_H_INCLUDED
2.mcdHid.h
#ifndef MCDHID_H_INCLUDED#define MCDHID_H_INCLUDED
extern "C"{#include "setupapi.h"#include "hidsdi.h"#include "dbt.h"}
typedef struct _HID_DEVICE {&& &&& PCHAR&&&&&&&&&&&&&&& DeviceP&&& HANDLE&&&&&&&&&&&&&& HidD // A file handle to the hid device.
&&& HIDP_CAPS&&&&&&&&&&& C // The Capabilities of this hid device.&&& HIDD_ATTRIBUTES&&&&& A
} HID_DEVICE, *PHID_DEVICE;
class MCDHid{public:
&static MCDHid & getInstance(){&&static MCDHid mcdH&&return mcdH&}
&MCDHid(MCDHid & mcdHid);
&MCDHid & operator=(MCDHid &mcdHid);
&&& ~MCDHid();
&&& unsigned long openMCDHid();
&&& void closeMCDHid();
&&& void startComm(void * pParam);&&& &&& int writeToHid();&&& &&& int readFromHid();
&&& char * getHidDeviceName()&{&&&&&&& return _hidDeviceN&&& }
&bool findMCDHid();
&HID_DEVICE* getHidDevice(){&&return & _hidD&}
&bool getUsbCommRunning(){&&return _fUsbCommR&}
&bool getOffHookSignal(){&&return _offHookS&}
&unsigned long getDataWaitProcess(){&&return _dataWaitP&}
&void setUsbCommRunning(bool usbCommRunning)&{&&_fUsbCommRunning = usbCommR&}
&unsigned char _inputReportBuffer[9];
&unsigned char _outputReportBuffer[2];
&MCDHid();
&void copy(MCDHid & mcdHid);
&&& char *_hidDeviceN
&HANDLE _hEventO
&OVERLAPPED _hIDO
&HID_DEVICE _hidD
&bool _fUsbCommR
&bool _offHookS
&unsigned long&_dataWaitP
&unsigned long _inputReportByteL
&unsigned long _outputReportByteL
#endif // MCDHID_H_INCLUDED
3.mcdHid.cpp
/*mcdhid.cppfunction: open HID device ,close HID device ,read data from HID device , write data to HID deviceauthor:date:version:*/
#include #include #include
#include "mcdhid.h"#include "MCDInterface.h"#include "mcdbox.h"#include "pthread.h"
void *getDataThread(void *pParam);
#define VENDOR_ID&& 0x1241//test device vendorId#define PRODUCT_ID& 0xe001//test device productId#define CLIENT_RUNNING_MSG
MCDHid::MCDHid()
{&_hidDeviceName = "MCD Human Interface Device";&&_fUsbCommRunning =&_offHookSignal =&_dataWaitProcess = 1;
&memset(_inputReportBuffer,0,sizeof(_inputReportBuffer));&memset(_outputReportBuffer,0,sizeof(_outputReportBuffer));
MCDHid::MCDHid(MCDHid & mcdHid){&copy(mcdHid);}
MCDHid & MCDHid::operator=(MCDHid & mcdHid){&copy(mcdHid);&return *}
void MCDHid::copy(MCDHid & mcdHid){&_hidDeviceName = mcdHid._hidDeviceN
&_hEventObject = mcdHid._hEventO
&_hIDOverlapped = mcdHid._hIDO
&_hidDevice = mcdHid._hidD
&_fUsbCommRunning = mcdHid._fUsbCommR
&_offHookSignal = mcdHid._offHookS
&_dataWaitProcess = mcdHid._dataWaitP
&_inputReportByteLength = mcdHid._inputReportByteL
&_outputReportByteLength = mcdHid._outputReportByteL
&for(int i = 0; i<sizeof(_inputReportBuffer); i++)&{&&_inputReportBuffer[i] = mcdHid._inputReportBuffer[i];&}
&for(int i = 0; i<sizeof(_outputReportBuffer); i++)&{&&_inputReportBuffer[i] = mcdHid._outputReportBuffer[i];&}
MCDHid::~MCDHid(){&}
unsigned long MCDHid::openMCDHid(){&&& if(findMCDHid())&&& {&&&&&&& //采用重叠传输方式&&&&&&& //if( _hEventObject == 0)&&&&&& // {&&& &&&&&&&&&&&& _hEventObject = CreateEvent(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NULL,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& true,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& true,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& "");&&&&&&&&&&&& _hIDOverlapped.hEvent = _hEventO&&&&&&&&&&&& _hIDOverlapped.Offset = 0;&&&&&&&&&&&& _hIDOverlapped.OffsetHigh =0;&&&&&& // }&&&&&&& &&&&&&& return MCD_RETURN_SUCCESS;&&& }&&& else&&& return MCD_RETURN_NO_FOUND_HID;}
void MCDHid::closeMCDHid(){
&CloseHandle(_hidDevice.HidDevice);&&& &_hidDevice.HidDevice = INVALID_HANDLE_VALUE;
void MCDHid::startComm(void *pParam){&int&&&&&&& thr_&&& pthread_t m_processT;&&&&& if((thr_id=pthread_create(&m_processT, NULL, getDataThread, pParam) != 0))&{&&//printf("pthread_create error:%s\n", strerror(thr_id));&&&}}
bool MCDHid::findMCDHid(){&&& int vendorID = VENDOR_ID;&&& int productID = PRODUCT_ID;&DWORD
&&& GUID hidG&HDEVINFO hDevI&SP_DEVICE_INTERFACE_DATA devInfoD&int memberIndex = 0;&LONG&bool lastDevice =&DWORD&PSP_DEVICE_INTERFACE_DETAIL_DATA detailData = NULL;&&& bool deviceDetected =
&HidD_GetHidGuid(&hidGuid);&hDevInfo = SetupDiGetClassDevs&&&&&& (&hidGuid,&&&&&NULL,&&&&&NULL,&&&&&DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);&& //当应用程序不再需要使用SetupDiGetClassDevs函数的传回值hDevInfo所指的数组时,应该调用SetupDiDeStroyDeviceInfoList函数来释放资源&& if(hDevInfo == INVALID_HANDLE_VALUE)& &&{& &&&//printf("Failed to open device handle!");& &&&& &&}& &&&& devInfoData.cbSize = sizeof(devInfoData);&& do&&{&&&result = SetupDiEnumDeviceInterfaces(&&&&&& hDevInfo,&&&&&& 0,&&&&&& &hidGuid,&&&&&& memberIndex,&&&&&& &devInfoData);&&&& &&&&&if (result != 0)&&&{&&&&&&&result = SetupDiGetDeviceInterfaceDetail(&&&&&&& hDevInfo,&&&&&&& &devInfoData,&&&&&&& NULL,&&&&&&& 0, &&&&&&& &length,&&&&&&& NULL);
&&&&detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(length);&&&&if(!detailData)&&&&&&&&&&& &&{&&&&&&&&&&& &&&//printf("Device information allacation failed!");&&&&&&&&&&& &&&&&&&&&&&&&& &&}&&&&detailData -> cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);&&&&&&&&&&&
&&&&result = SetupDiGetDeviceInterfaceDetail(&&&&&&& hDevInfo,&&&&&&& &devInfoData,&&&&&&& detailData,&&&&&&& length,&&&&&&& &required,&&&&&&& NULL);&&&&if(!result)&&&&&&&&&&& &&{&&&&&&&&&&& &&&//printf("Device information reallocation failed!");&&&&&&&&&&&& &&&&&&&&&&&&&& &&}&&&&&&&_hidDevice.HidDevice = CreateFile(&&&&&&&& detailData->DevicePath,&&&&&&&& GENERIC_READ|GENERIC_WRITE,&&&&&&&& FILE_SHARE_READ|FILE_SHARE_WRITE,&&&&&&&& (LPSECURITY_ATTRIBUTES)NULL,&&&&&&&& OPEN_EXISTING,&&&&&&&& FILE_FLAG_OVERLAPPED,&&&&&&&& NULL);&&&&&&&&&&& &&&&_hidDevice.Attributes.Size = sizeof(HIDD_ATTRIBUTES);&&&&result = HidD_GetAttributes(&&&&&&& _hidDevice.HidDevice,&&&&&&& &_hidDevice.Attributes);&&&&if ((_hidDevice.Attributes.VendorID == vendorID) && (_hidDevice.Attributes.ProductID == productID))&&&&&&&&&&& &{&&&&&&&&&&& &&&&&&&&&&&&&& &&&PHIDP_PREPARSED_DATA PreparsedD&&&&&&&&&&&& &&&deviceDetected =&&&&&&&&&&& &&&&&&&&&&&&&& &&&//获取USB设备的预解析数据&&&&&&&&&&& &&&result = HidD_GetPreparsedData(_hidDevice.HidDevice,&PreparsedData);&&&&&&&&&&& &&&if(!result)&&&&&&&&&&& &&&{&&&&&&&&&&& &&&&//printf("无法获取USB设备的预解析数据!");&&&&&&&&&&& &&&&&&&&&&&&&&& &&&}&&&&&&&&&&& &&&status= HidP_GetCaps(PreparsedData, &_hidDevice.Caps); &&&&&&_fUsbCommRunning =&&&&&&HidD_FreePreparsedData(PreparsedData);&&&&&&PreparsedData = NULL;&&&&&&&&&&}&&&&else&&&&{&&&&&//printf("没有找到设备!");&&&&&closeMCDHid();&&&&}&&&&free(detailData);&&&&detailData = NULL;&&&}&&&else&&&{&&&&&&&&& &&lastDevice =&&&}&&&memberIndex = memberIndex + 1;&&}while((lastDevice == false)&&(deviceDetected == false));&&& &&SetupDiDestroyDeviceInfoList(hDevInfo);&&return deviceD}/**写入数据为MCD设备状态通知,把标识位放在第1位*/int MCDHid::writeToHid(){&& &return 0;}
int MCDHid::readFromHid()//int readFromHid(){&if(_hidDevice.HidDevice != INVALID_HANDLE_VALUE)&{&& int result = 0;&& DWORD numberOfBytesR&& && result = ReadFile(_hidDevice.HidDevice,&&&&&&&&&&&&&&&&&& &_inputReportBuffer,& &&&&&& _hidDevice.Caps.InputReportByteLength,& &&&&&& &numberOfBytesRead,&&&&&& (LPOVERLAPPED)&_hIDOverlapped);
&& _inputReportByteLength = _hidDevice.Caps.InputReportByteL&& &}
&int waitResult = 0;
& &waitResult = WaitForSingleObject(&&&&&&&&&&&&&&& _hEventObject,&&&&&&&&&&&&&&& 10);&&& switch(waitResult)&&& {&&&&&&& case WAIT_OBJECT_0:&&&&&&& case WAIT_TIMEOUT:&&&&&&& {&&&&&&&&&&& CancelIo(_hidDevice.HidDevice);&&&&&&&&&&&&&&&&&& }&&&&&&& default:&&&&&&& {&&&&&&&&&&&&&&&&&& }&&& }&&& ResetEvent(_hEventObject);&&&return 0;}
/***************************************************************************启动一个读取数据线程,读取数据为拨打电话号码*启动一个写入数据线程, 写入数据为MCD设备状态通知,现在还没有写数据***************************************************************************/
void *getDataThread(void *pParam){&&& &MCDBox *ht = (MCDBox *)pP&MCDHid *hr = &(MCDHid::getInstance());&&&& while(hr->getUsbCommRunning())//USB设备running,并且有摘机信号&&& {&&& &&&& &hr->readFromHid();&&& &&//readFromHid(); &&//printf("获取缓冲区的数据\n");&&&& && &if(hr->getDataWaitProcess() > 0)//可以定义_dataWaitProcess为一次拨号数据的长度&&{&&&unsigned long i = 0;&&&&&&for(i = 0; i < 9; i++)&&&{&&&&&& ht->_inputReportBuffer[i] = hr->_inputReportBuffer[i];&&&&//printf("read data from device is:%d\n",ht->_inputReportBuffer[1]);&&&}&&& &&ht->processData(); &&&memset(hr->_inputReportBuffer,0,sizeof(hr->_inputReportBuffer));&&&//printf("数据处理!\n");&&}
&&int status = 0;&&//PHIDP_PREPARSED_DATA PreparsedD&&&//status = HidD_GetPreparsedData(_hidDevice.HidDevice,&PreparsedData);&&status = HidD_GetAttributes(&&&&hr->getHidDevice()->HidDevice,&&&&&hr->getHidDevice()->Attributes);&&&&&&& if(!status)&&&&&&& {&&&hr->setUsbCommRunning(false);&&&memset(ht->_inputReportBuffer,0,sizeof(ht->_inputReportBuffer));&&&ht->_inputReportBuffer[2] = HID_DEVICE_REMOVE;&&&ht->processData(); &&&&&&&&&&& printf("设备移走!");&&&&&&&&&&& //&&&&&&&&&& }&&//HidD_FreePreparsedData (PreparsedData);&//&PreparsedData = NULL;
&&Sleep(100);&&& }&return 0;}
阅读(12965) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。『无法识别』相关搜索
(C) 列表网&琼ICP备号-12&琼公网安备08

我要回帖

更多关于 大学生来了贺开朗微博 的文章

 

随机推荐