阅读:1619回复:7
两个简单问题,请帮忙回答:
我在NT Server系统上装了NT DDK,然后编译它给的Simple中的genport例子,但它在编译时开始提示我没装Win32 SDK,后来我找了个装上后,它又在编译时给我提示一系列的SDK目录下的好多个.h文件的Last line incomplete,不知道这是什么原因?
另外,后来我在2000下装了个2000 DDK,用它编译NT DDK的那个genport,编译通过了,但是用gpdread去读写端口时只能按“BYTE\"读0,1,2端口,且值还都是ff,读其它端口时都报这样一个错:Ioctl failed with code 998\",不知是不是它给的例子程序本身就是错的,还是我机器的原因? 以上两个问题请哪位高手给个回答,谢了。 |
|
|
沙发#
发布于:2002-04-03 05:28
1.Use DDKs after Win2000, which doesn\'t require Win32 SDK. And debug it with DS 2.6 if you install WinXP DDK, because it use VC7 compiler and a new symbol format.
2.If you really want to test for io ports, you can get a manual for your motherboard chipset (North bridge). And read some meaningful port. Don\'t try to write IO port if you don\'t know what it is. |
|
板凳#
发布于:2002-04-02 19:50
楼上的,这个我到是知道,因为它的基地址是0x300,所以你在用:
gpread -b 0,时用得实际上就是0x300端口了,这个只要驱动能正确加载的话还是可以读的,结果是:0xff,这三个端口(0x300-ox303)都是这个值。 另外在NT环境下对端口的限制还小些。要是在2000下限制就大点。 我试着把genport.h里的BASEPORT改为0x240h,PORTNUMBER改为0x2F,在2000下也能读写。不过后来觉得老试太繁,就放弃了,你可以自己试试哪些端口能不能用,其范围等。 我用这个驱动在2000上做了个上层,你要有兴趣的话可以和我联系,我可以友情赠送,我这人有东西就喜欢和大家共享。 我的QQ号是:17412666。 另外很想和大家就这些问题交流一下。 |
|
|
地板#
发布于:2002-04-02 12:35
io端口当然只有64K
而且我怀疑你从0开始虚拟的话,用起来也会出问题吧。 |
|
|
地下室#
发布于:2002-04-02 10:05
这位兄弟,我也遇到和你一样的问题,请问你用这个例子能进行正确的读写吗?为什么我得不到正确的结果呢,你说它的端口范围为0x300--0x303,可是我用这个端口,它就会报Ioctl failed with code 998的错,为什么呢?谢谢!
|
|
|
5楼#
发布于:2002-04-01 19:35
楼上的两位,先谢了,后来我也发现这个例子原来只是模拟0x300~0x303端口。但我把它的基端口由0x300改为0x0,PortNumber改的大点它能编译但一加载就说参数错,PortNumber要是小点就没错,不知为什么,不知道I/O端口范围到底是多少?64K?
|
|
|
6楼#
发布于:2002-04-01 19:25
ntddk必须装sdk,可能是由于你的安装顺序有问题吧。
那个例子只模拟了三个io口, |
|
|
7楼#
发布于:2002-03-30 16:49
问题一的解答:
如果能够编译出驱动程序,那么就不用管那些警告,如果还不能编译,那么你就再安装一次DDK就可以了! |
|