版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、开发可以自动运行程序的U盘 HYPERLINK mailto:zhengvzhengv一为什么要开发这样的U盘可以自动运行程序的U盘插入电脑后U盘里面的程序会自动运行,这样的U盘可以作为软件厂商存储程序的载体,也可以作为U盘厂商扩展U盘功能的一种途径。举几个例子:有加密功能的U盘可以把加密软件存放到U盘中,插入U盘后自动运行加密管理软件,极大方便了用户,厂商也不用另外提供软件;我甚至这么想过,把温度芯片加入到U盘电路里面,U盘上的程序自动运行后,通过USB接口读出温度,显示给用户:)只要你多想,这样的U盘还可以做很多事情。二开发思路我们知道光驱插入光盘可以自动运行,所以我们可以让U盘的一个区模
2、拟成光盘的形式。这样我们可以利用autorun.inf,让程序自动运行。三开发步骤1让U盘一个区显示成光盘这个对于开发过U盘的人来说应该很简单,就是在操作系统发送SCSI设备的INQUIRY指令的时候,返回的INQUIRY里面指明设备类型,我们设置为CD设备。具体指令可以参考相关资料(spc3r23.pdf)。我开发的时候INQUIRY返回数据的前几个字节如下:0 x05,0 x80,0 x02,0 x02仅供参考。2响应操作系统对这光盘区的指令成光盘后,操作系统可能会发送一些SCSI指令给这个光盘区。应该响应某些指令,有些并不需要响应。后面我会附录一个我弄过的一个U盘的BusHound监测文
3、件,大家可以参考。最好买一个这样的U盘,然后用BusHound监测通讯过程。3向光盘区写入文件应该可以把光盘区弄成CDRW,这样直接写入就可以了,但这样需要了解很多协议。由于时间关系,我采用了简单的方法,把需要写入光盘的文件用ISO制作工具弄成一个ISO镜像文件,编写一个小程序向这个光盘区写入ISO镜像文件。程序部分代码附在文档后面,仅供参考。写入的程序最终调用DeviceloControl函数。文件写入后,再重新拔插U盘就可以了。四说明这里只是简单说明了原理,如果是刚接触这个,还有很多东西要弄清楚,我是在别人一个普通U盘开发板的基础上添加这个功能的,最后弄通了,感觉很不容易,以前也没有弄过硬
4、件的固件程序。希望对新手有帮助。有什么问题,可以邮件联系交流。附录:1WriteISO程序部分代码:UINTCWriteIsoFileDlg:ThreadWrite(LPVOIDpParam)CWriteIsoFileDlg*p=(CWriteIsoFileDlg*)pParam;CSDsksd;CStringstr;HANDLEfh,hFind;WIN32_FIND_DATAFindFileData;ULONGLONGfSize=0;CFileFindff;DWORDstartAddr=0;DWORDnBytesRead=0;PBYTEbuf=newBYTE20480;memset(buf,
5、0,20480);tryif(!ff.FindFile(p-filename)str.Format(找不到文件s,p-filename);throw1;ff.FindNextFile();fhCreateFile(ff.GetFilePath(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if(fh=INVALID_HANDLE_VALUE)str.Format(打开文件%s失败,p-filename);throw1;if(!sd.Open()throw0;intindex=sd.Ge
6、tDevNum()-1;if(!sd.ReadCapacity(index,0,fSize)throw0;if(ff.GetLength()fSize)str=光盘空间不足,不能写入。;throw1;fSize=ff.GetLength();if(!sd.GetFlashParam(index,0,1,buf)throw0;buf0&=0 xBF;if(!sd.SetFlashParam(index,0,1,buf,false)throw0;while(1)if(ReadFile(fh,buf,20480,&nBytesRead,NULL)if(nBytesRead!=0)if(!sd.Wri
7、te(index,0,startAddr,40,buf)throw0;startAddr+=40;memset(buf,0,20480);elsebreak;elsestr=读文件错误!;throw1;p-MessageBox(写入镜像文件成功!”,NULL,MB_OK|MB_ICONINFORMATION);sd.PlugDisk(index,0,true);deletebuf;exit(0);catch(inte)if(e=0)p-MessageBox(sd.err.GetErrMsg(),NULL,MB_OK|MB_ICONERROR);elsep-MessageBox(str,NULL
8、,MB_OK|MB_ICONERROR);deletebuf;exit(-1);return1;2可以自启动U盘的BusHound在windowsXp下的监测文件DevicePhaseDataDescriptionCmd.Phase.Ofs(rep)20CDB120000002400INQUIRY1.1.020DI0580020219811028(1.2.0323153544320202021STC1.2.85345435552452043SECUREC1.2.164420415245412020DAREA1.2.2420CDB2500000000000000READCAPACITY2.1.0
9、00002.1.820SNS700006000000000cmediumchanged2.2.000000000280000002.2.800002.2.1620CDB2500000000000000READCAPACITY3.1.000003.1.820DI00004fff00000200.O3.2.020CDB5a082a0000000000MODESENSE4.1.0(2)20004.1.820DI00060000000000004.2.020CDB120000002400INQUIRY6.1.020CDB120000002400INQUIRY7.1.020DI0580020219811
10、028(6.2.0323153544320202021STC6.2.85345435552452043SECUREC6.2.164420415245412020DAREA6.2.2420DI0580020219811028(7.2.0323153544320202021STC7.2.85345435552452043SECUREC7.2.164420415245412020DAREA7.2.2420CDB000000000000TESTUNITREADY8.1.020SNS700002000000000cnomedia8.2.0000000003a0000008.2.800008.2.1620
11、CDB000000000000TESTUNITREADY9.1.020SNS700006000000000cmediumchanged9.2.000000000280000009.2.800009.2.1620CDB2500000000000000READCAPACITY10.1.0000010.1.820DI00004fff00000200.O10.2.020CDB4300000000000000READTOC11.1.00c4011.1.820DI001201010014010011.2.00000020011.2.820CDB2800000000400000READ12.1.004001
12、2.1.820DI0143443030310100.CD001.12.2.0000000000000000012.2.8000000000000000012.2.16000000000000000012.2.2420CDB2800000000440000READ13.1.0040013.1.820DI0243443030310100.CD001.13.2.0000000000000000013.2.8000000000000000013.2.16000000000000000013.2.2420CDB2800000000480000READ14.1.0040014.1.820DIff43443
13、030310100.CD001.14.2.0000000000000000014.2.8000000000000000014.2.16000000000000000014.2.2420CDB28000000004c0000READ15.1.0040015.1.820DI010015000000010015.2.0000000000000000015.2.8000000000000000015.2.16000000000000000015.2.2420CDB000000000000TESTUNITREADY16.1.020CDB4302000000000003READTOC17.1.024001
14、7.1.820DI001201010014010017.2.0000002000000000017.2.80000000000000324$17.2.160000000000000065e17.2.2420CDB2500000000000000READCAPACITY18.1.0000018.1.820DI00004fff00000200.O18.2.020CDB2800000000000000READ19.1.0080019.1.820DI000000000000000019.2.00000002020002020242000000020242000000020042000000020042
15、0000000200420000800202004200000000000000000000019.2.80000000000000019.2.160000000000000019.2.24CDB000000000000TESTUNITREADY20.1.0CDB2500000000000000READCAPACITY21.1.00021.1.8DI00004fff00000200.O21.2.0CDB4302000000000003READTOC22.1.00022.1.8DI001201010014010022.2.00002000000000022.2.800000000000324$2
16、2.2.1600000000000065e22.2.24CDB4300000000000003READTOC23.1.04023.1.8DI001201010014010023.2.00002000000000023.2.800000000000324$23.2.1600000000000065e23.2.24CDB2800000000400000READ24.1.0(2)0024.1.8DI0143443030310100.CD001.24.2.00000000000000024.2.80000000000000024.2.160000000000000024.2.24CDB28000000
17、00440000READ26.1.00026.1.8DI0243443030310100.CD001.26.2.00000000000000026.2.80000000000000026.2.160000000000000026.2.24CDB2800000000580000READ27.1.00027.1.8DI220016000000000027.2.01600080000000027.2.8006a050a0f2124.j.!$27.2.160200000100000127.2.24CDB000000000000TESTUNITREADY28.1.0(5)CDB2800000000500
18、000READ33.1.00033.1.8DI020016000000010033.2.00000000000000033.2.80000000000000033.2.160000000000000033.2.2420CDB000000000000TESTUNITREADY34.1.0(2)20CDB4302000000000003READTOC36.1.0240036.1.820DI001201010014010036.2.0000002000000000036.2.80000000000000324$36.2.160000000000000065e36.2.2420CDB000000000000TESTUNITREADY37.1.020CDB28000000005c0000READ38.1.0040038.1.820DI5b6175746f72756eautorun38.2.05d0d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训学校一日工作制度
- 武馆员工教育培训制度
- 执业医师培训制度
- 生产三级培训管理制度
- 食堂人员招募及培训制度
- 工程安全管理与预算考量
- 培训制度奖惩细则
- 纳税人网络培训制度
- 舞蹈培训员工入职制度
- 学校书法培训制度及流程
- 事业编退休报告申请书
- 原发性骨髓纤维化2026
- 2023-2024学年北京市海淀区清华附中八年级(上)期末数学试卷(含解析)
- 临终决策中的医患共同决策模式
- TCFLP0030-2021国有企业网上商城采购交易操作规范
- 清淤工程分包合同范本
- 《油气管道无人机智能巡检系统技术管理规范》
- 论高级管理人员应具备的财务知识
- GB/T 7354-2003局部放电测量
- GB/T 1690-1992硫化橡胶耐液体试验方法
- GB/T 12326-2008电能质量电压波动和闪变
评论
0/150
提交评论