驱动程序开发网技术社区 » vista & x64 驱动程序 » 我的菜鸟日记:将驱动移植到64位的Vista ultimate下 (转到动态网页)
« 1 23» Pages: ( 1/3 total )
本页主题: 我的菜鸟日记:将驱动移植到64位的Vista ultimate下 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 我的菜鸟日记:将驱动移植到64位的Vista ultimate下

    [p]  恩,左思右想,前思后想,决定开这个帖子,记录我这样一个菜菜菜到不能菜的菜鸟,到底将会克服什么困难,遇到什么问题,最终成功的(虽然目前到成功之远,堪比电信之于网通,不过,肯定是会成功的,对吧)把32bit的sys,移植到64bit的vista上去的。
    装修有装修日记,结婚有结婚日记,我来写个移植日记,一是为了记录自己的工作情况(说白了我就是怕我自己干完了都不知道到底干了些啥),二是拍砖引玉,希望有更多同学提供更多信息。
    本人真是超级菜鸟,之前混了两三年,其实连驱动是怎么一回事,都是一知半解的,要做这么一个工作,那真是非我本意啊,无奈银子大过天,赶鸭子上架,那也得上啊!所以,请各位大侠拍砖的时候,温柔点,罗马不是一天建成的,菜鸟也有倾诉的权利啊~~~~[/p]
顶端 Posted: 2007-12-05 11:21 | 浙江省杭州市 [楼 主]
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

[p]菜鸟之所以自称菜鸟,跟谦虚这种美好的品德并无关系,完全基于对自身的充分了解和认识。
菜鸟工作三年,一直用的是VC6.0,WIN2K DDK,WIN 2K的系统,SoftICE因为电脑显卡不支持,一直没用过,WinDbg倒是装了,不过只用来看看dmp文件。一句话,调试驱动,我不会!大侠们可能会问:莫非你写好程序就瞎猫跑么?非也,非也。调试信息菜鸟还是会输出的。。。。[/p]
      菜鸟就是这样混了三年,上个星期,领导忽然下达最新任务,要让俺们的USB设备,在64bit的Vista下正常的,好好的,运行起来。期限:半个月!
  菜鸟心知不妙,丝毫不敢拖延,立马上网找资料,MSN上一通狂轰滥炸,总算得到如下信息:
1.、要有一个64位编译器,能编译出64bit的程序。得,就VS2005吧。下载,安装,成功!
2、win2k的DDK是不能用了,得装64bit的DDK。立马装了WIN2003DDK,装好傻眼了,那么多目录,又是XP又是2k的,没看到Vista啊?菜鸟立刻发挥不耻下问的精神,问到的结果是:你哪能用win2003的DDK呀,你得用Vista的DDK!呃,Vista的DDK,菜鸟记得在驱动开发网看到过的,赶紧上去下啊(又恐权限不够)。结果,恩,咋死活上不去驱网呢?算了,再找找吧。拍马赶到windows connetion(高级啊,以前从来没来过),注册,登陆,申请,下载,oye,成功!再一看速度,9k!菜鸟还算聪明,在美国,欧洲和亚洲三个下载地址中那是反复的试啊连啊,死活速度不超过11k!老实等着吧。结果下班之后,忽然发现速度猛然窜到了300k。苍天啊,大地啊,白白骂了微软一天,敢情是我们公司这破网的问题啊!下载成功,安装,结果:呃,您的系统太破,我们WDK不支持。。菜鸟崩溃中。。。
3、sys那是一定要是64bit的。但是DLL,据说32bit的也能用,只不过得换个目录放。那就不管它,先用32bit的,不行再换。[p][/p]
顶端 Posted: 2007-12-05 13:13 | 浙江省杭州市 1 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

昨天,菜鸟跌跌撞撞的在Vista下面,装好了VS2005,WDK,有模有样的开始编译sys啦!当然是一大堆的警告和错误,swprintf直接报错,说参数缺了一个,改啊改;无数的函数变得不安全,教我用安全的代替,反正是警告,就当没看见吧先;编译连接选项变的乱七八糟,删啊删。目前还没编译成功。再接再厉吧
顶端 Posted: 2007-12-06 08:42 | 浙江省杭州市 2 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

菜鸟昨天忙忙碌碌的编译了一天,也没编译成功!
正当焦头烂额之际,一个同事跟我说,你不用这么麻烦啊!直接在VC6下面,装好DriverStudio,用2003的DDK编译嘛!只要改下编译连接选项,改成AMD64的就成。
菜鸟一下子晕了,这样可以么?真的可以么?那我之前不是白折腾了啊?
算了,先这样试试。。
顶端 Posted: 2007-12-07 08:17 | 浙江省 3 楼
wowocock
特殊贡献奖
级别: VIP专家组


精华: 0
发帖: 4902
威望: 1315 点
积分: 489 分
贡献值: 1 点
好评度: 1227 点
原创分: 1 分
注册时间:2002-04-08
最后登录:2008-08-09

 

后来呢???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
顶端 Posted: 2007-12-07 08:30 | Unknown 4 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

哈哈,楼上的同学,我好感谢你啊!!!你是第一个光临菜鸟日记的。
后来菜鸟我真的按照同事所说的,用DriverStudio编译的,编译成功啦!
然后我改了我的inf文件,在Vista下安装,遇到了“类别安装程序拒绝安装或升级此设备的请求”的错误,现在我正在想如何解决这个问题哩。
顶端 Posted: 2007-12-07 10:34 | 浙江省 5 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

菜鸟这时候有点想明白了,我虽然是在VC6下打开我的工程,但是我装好了Driverstudio和2003DDK,并且设置好了编译连接选项,定义了AMD6的预编译头,这个时候其实是DriverStudio在编译连接,而不是VC6,所以这样编译出来的sys,也应该是64bit的啦!
为了验证菜鸟的想法,菜鸟用Depends打开sys,哈哈,一团乱,再打开之前的32bit的sys,一目了然!
这是不是能证明菜鸟编译的sys,确实是64bit的呢?
菜鸟想法奇怪幼稚并且无知,大侠看到了请多多指教。
我其实知道我这样做事情不对,但是我Vista没用过,64bit系统没用过,VS2005没用过,WDK没用过,2003DDK我都没用过,这样的情况我真的是病急乱投医啦!
顶端 Posted: 2007-12-07 10:39 | 浙江省 6 楼
angel_dolphin_i
幸福的感觉也许只能刹那,刹那过后,是一个人的精彩。
新人进步奖 灌水天才奖
级别: 驱动中牛


精华: 0
发帖: 557
威望: 432 点
积分: 5 分
贡献值: 0 点
好评度: 552 点
原创分: 0 分
注册时间:2007-08-16
最后登录:2008-07-03

 

哦,呵呵,再后来呢,come on, baby!
顶端 Posted: 2007-12-07 10:39 | 香港 7 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

菜鸟现在很后悔三年来一直混混沌沌的工作,公司一直用的VC6加2000 ddk,菜鸟也一直心安理得的这么用,似乎都跟外界脱节了。等开始这个工作的时候,菜鸟才猛然发现,自己落后的太多了!记得两三年前,菜鸟混的一个论坛上,大家都在骂VS2003,说它这个不好那个不好,说VC6多么多么好,菜鸟那会儿觉得很开心,这不就更有理由不用学习新工具了么?但是现实就是:新的工具一旦发展成熟,必然取代旧工具,作为我们来说,有三种选择,1,主动接纳学习新工具。2,被动接受新工具。3,无法接受新工具,被淘汰!
  菜鸟现在不得不选择了第二个。并且下了决心,我得做第一个!
顶端 Posted: 2007-12-07 10:50 | 浙江省 8 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

啊,又有同学来我的帖子了!感动中!
菜鸟总结一下自己现在的成果:
1、用DriverWizard创建了一个新的支持AMD64的空的驱动工程,删掉了其中所有文件,把我原来工程文件添加进去。然后在VC6下,通过DriverStudio设置好DDK的目录为2003DDK,编译成功了sys。
2、修改了INF文件,增加了一个ntamd64的section,在这个section下添加了我的设备VID等。
3、直接使用inf文件,右键安装,不成功,提示这个inf文件没有什么可安装的项目之类的。
4、在设备管理器中,找到设备,强制安装,可以显示出设备名称,这时候安装,则“类别安装程序拒绝安装或升级此设备的请求”

  现在菜鸟先去解决那“类别安装程序拒绝安装或升级此设备的请求”的问题去啦~

   
顶端 Posted: 2007-12-07 11:00 | 浙江省 9 楼
alwaysrun
存平等心,行方便事,则天下无事。怀慈悲心,做慈悲事,则心中太
级别: 驱动小牛


精华: 0
发帖: 109
威望: 110 点
积分: 992 分
贡献值: 0 点
好评度: 98 点
原创分: 0 分
注册时间:2006-06-01
最后登录:2008-08-11

 

继续了。。。。。。。。。。。。
顶端 Posted: 2007-12-07 14:18 | 上海市 10 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

菜鸟郁闷的一塌糊涂。
那个什么类别安装程序拒绝的问题,周五搞了一天,也没搞清楚到底哪里出了问题,是我的sys本身编译的不对,还是inf文件有问题?
因为使用的是2003SDK,据同事说他在XP下和2003下用这个方法都没问题,而且我的inf文件也是照他的写的,那么可能是这样做在VISTA下不行?
于是我又搞了一个64bit的XP,试着安装了一下,也是这个样子,安装不成功。在DriverEntry下加了一些调试信息,安装的时候没进入DriverEntry啊?怎么回事哩?
今天继续搞这个问题。。。
如果还是搞不出来,我试着自己改下注册表试试?反正所谓安装,不就是copy几个文件,注册几个东西嘛,纯手工安装下试试!
顶端 Posted: 2007-12-10 09:16 | 浙江省 11 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

菜鸟今天太开心了,哈哈!
今天仔细检查了inf文件,发现了某个地方不太合适,改,重新安装,哈哈,没有完全成功,设备前显示一个感叹号。我怀疑是数字签名的问题,重新启动系统,F8,改成什么允许没有签名过的驱动,等系统起来一看,哈哈,设备装好了!我用了一下,正常啊!
具体功能还需要仔细测试,不过,挺艰难的一步终于过去了。开心啊!
虽然是用的最最简单的方法,虽然DLL什么的,都是32bit的,但是,终于有了这么一点成果,作为一只菜鸟,不激动是不可能的!

菜鸟接下来要
1、好好测试一下设备功能
2、在这里看到大侠们说,64bit的Vista系统,数字签名是绕不过去的,我总不能每次叫客户都F8去改启动选项呀。于是跟销售同事说得解决这问题。他们说,具体要怎么买怎么做,要我具体说明一下,他们去操作。可我根本不知道数字签名是怎么一回事,还得仔细研究研究。
顶端 Posted: 2007-12-11 15:42 | 浙江省 12 楼
focusbh99
级别: 驱动牛犊


精华: 0
发帖: 47
威望: 48 点
积分: 470 分
贡献值: 0 点
好评度: 47 点
原创分: 0 分
注册时间:2007-07-04
最后登录:2008-02-02

 

楼主的经验对于我很重要,谢谢!!
顶端 Posted: 2007-12-12 16:18 | 广东省珠海市 13 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

楼上的同学,谢谢顶贴哈。有一点点你可以学到的地方,我就很开心啦!我写的不对的,你也帮我指出来呀。
这几天我一直在研究数字签名以及购买什么证书的事情。
证书买好,就可以制作数字签名啦。
顶端 Posted: 2007-12-13 12:51 | 浙江省 14 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

啊,原来你也在折腾那个证书的事情,咱俩交流一下哈!
能不能加我msn啊:mengjin0321@hotmail.com
顶端 Posted: 2007-12-13 12:57 | 浙江省 15 楼
xiexiantao
级别: 驱动牛犊


精华: 0
发帖: 22
威望: 23 点
积分: 181 分
贡献值: 0 点
好评度: 21 点
原创分: 0 分
注册时间:2007-04-10
最后登录:2008-07-03

 

能够把inf文件内容发出来看看吗
顶端 Posted: 2007-12-18 11:46 | 北京市 16 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25

 

楼上同学,你inf文件不会写么?抱歉,我不能全部发上来,但是,只要增加NTAMD64这部分,其他不做什么改动就可以了。DDK里有很多例子的。
如果你到了“设备前面有个感叹号”的地步,那说明你是因为没有数字签名的原因,启动时候通过F8修改下启动项,允许没有签名的驱动加载,就可以了。
顶端 Posted: 2007-12-19 11:20 | 浙江省 17 楼
mengjin
我很菜,但是我很温柔
级别: 驱动牛犊


精华: 0
发帖: 34
威望: 33 点
积分: 330 分
贡献值: 0 点
好评度: 33 点
原创分: 0 分
注册时间:2004-03-24
最后登录:2008-03-25