在win2000下怎么实现对_outp类似函数的调用

时间:2022-03-04 08:38:40
    我的win2000下用_outp对端口写,程序一执行到_outp就说发生了异常,我查了一下msdn,发现_outp只对win95具有兼容性,不支持win2000,不知那位大虾能不能帮我找一个能在win2000下运行的函数,我急着用,现在只好自己尝试写写这个函数 

26 个解决方案

#1


还是用内嵌式汇编比较好
不要迷信微软
_asm{
   in XXX
   out XXX
}
仅仅是举个例子

#2


能不能详细一点

#3


有趣,WIN2K直接内嵌汇编,行吗?
在WIN2K下访问端口可以用CreateFile(****),ReadFile(****),WriteFile(****)进行。
再说一个最好用的方法,用WINDRIVER的函数访问端口。

#4


wuwu

我怎么觉得createfile是对文件进行操作,不是对端口的
另外,windriver在msnd中怎么没有

#5


蚊子,救命啊
我还是不明白

#6


呵呵,windriver是写驱动程序的软件,你只需要5分钟就可以学会。
你想写的端口是板卡的还是并口?

#7


我要对声卡进行读写
在win98下,声卡的混音器端口为:2x4,2x5(x=2 or 4)(可以运行)
在win2000下,就不行了,我不知道win2000下它的端口号,程序毅运行到_outp就byebye了

#8


呵呵,还没人过问吗,
如果你的确需要,我给你发一个DLL,
劳驾,你的MAIL是?

#9


情况是这样的:
在win9X下,可以对端口直接进行操作的,如outp等。
在nt架构下(如win2k),对于端口的操作是严格禁止的!这是为了安全及稳定性考虑。
在win2k下,对端口的操作只能通过驱动程序这一方式。windriver也是如此,
他自己成为底层驱动,然后提供对外的接口供访问函数。

#10


linsen_fox@263.net
先谢谢蚊子了,下次不打蚊子了

#11


wzg_harbin(米西) 你这不是瞎说吗,我试过你的方法,根本行不通。

#12


是的,众位大虾有没有什么高见!小弟很急
//tea all

#13


蚊子,有一些问题,怎么办?

#14


不要着急嘛,发来的第二个补丁收到了吗,一定要先安装好驱动程序。
你的声卡有自己的驱动程序吗?如果有,这涉及到一个资源共享的问题,会很烦的。
能不能说详细一点,呵呵。。
附加:学学驱动程序编写会有好处的!

#15


    我现在在编写一个用声卡采集数据的控件,原先在win98下用_outp对声卡设置滤波,增益等,在我把系统升级到win2000后,这一却都成了美好的回忆,程序一运行到_outp,我的恶梦就开始了。我用的是以前的老声卡(isa),用windriver,我不大明白怎么在程序中调用windriver生成的东西,我装了windriver412版本,生成的冬冬在vc环境下有许多error,搞得我云里雾里,还望蚊子给我指点指点,推荐什么资料看一看,另外那个例子我还是不能运行,开始是“error while opening iont",后来可能和前面的问题一样,是不是因为我是从98升级到2000,还是wdreg -name windrvr.sys install没有运行正确(我是在他的快捷方式中设成
E:\fox\work\wdreg\wdreg.exe -name windrvr.sys install)不知道行不行,麻烦蚊子了

#16


windriver的参考文档很好的。
新给你发的邮件,看看。

#17


为什么一定要直接访问硬件?用audio mixers不行吗?
如果是特别的声卡,user mode的应用程序大概也不能随意直接访问硬件,导致不兼容,应该提供特别的驱动程序,user mode仍然用audio mixers完成。如果一定要在win2K里面直接读写端口,可以随便写一个非常小的驱动程序(从ddk里面抄个最基本的框架大概就行了),调用WRITE_PORT_XXX函数,处理IOCTL_XXXX请求,user mode 用createfile, ioctrl就搞定了。不过这样未免太牺牲兼容性。
我没写过声卡驱动,如果不幸误导,还请见谅。

#18


我给你封装了一个DLL,其使用就象oup()函数一样简单:
void WritePort(short port,BYTE outdata);
BYTE ReadPort(short port);
收信去吧!
呵呵呵呵!
等等,分,在哪?^_^

#19


//tea 蚊子

#20


我在下载
//tea 蚊子先

#21


汇报情况

#22


我这边的网速是在是那个慢,已经下载了75%,还要等一会

#23


猪呵,还没搞定吗?

#24


我要在2000下用并口在两太计算机间传输大量数据,怎么办啊

#25


当然不用直接电缆连接,可以自己编程吗

#26


nt下outport, inport, 和汇编的out, in都不好使哦,当时曾害得我以为我打印机端口坏了。。

#1


还是用内嵌式汇编比较好
不要迷信微软
_asm{
   in XXX
   out XXX
}
仅仅是举个例子

#2


能不能详细一点

#3


有趣,WIN2K直接内嵌汇编,行吗?
在WIN2K下访问端口可以用CreateFile(****),ReadFile(****),WriteFile(****)进行。
再说一个最好用的方法,用WINDRIVER的函数访问端口。

#4


wuwu

我怎么觉得createfile是对文件进行操作,不是对端口的
另外,windriver在msnd中怎么没有

#5


蚊子,救命啊
我还是不明白

#6


呵呵,windriver是写驱动程序的软件,你只需要5分钟就可以学会。
你想写的端口是板卡的还是并口?

#7


我要对声卡进行读写
在win98下,声卡的混音器端口为:2x4,2x5(x=2 or 4)(可以运行)
在win2000下,就不行了,我不知道win2000下它的端口号,程序毅运行到_outp就byebye了

#8


呵呵,还没人过问吗,
如果你的确需要,我给你发一个DLL,
劳驾,你的MAIL是?

#9


情况是这样的:
在win9X下,可以对端口直接进行操作的,如outp等。
在nt架构下(如win2k),对于端口的操作是严格禁止的!这是为了安全及稳定性考虑。
在win2k下,对端口的操作只能通过驱动程序这一方式。windriver也是如此,
他自己成为底层驱动,然后提供对外的接口供访问函数。

#10


linsen_fox@263.net
先谢谢蚊子了,下次不打蚊子了

#11


wzg_harbin(米西) 你这不是瞎说吗,我试过你的方法,根本行不通。

#12


是的,众位大虾有没有什么高见!小弟很急
//tea all

#13


蚊子,有一些问题,怎么办?

#14


不要着急嘛,发来的第二个补丁收到了吗,一定要先安装好驱动程序。
你的声卡有自己的驱动程序吗?如果有,这涉及到一个资源共享的问题,会很烦的。
能不能说详细一点,呵呵。。
附加:学学驱动程序编写会有好处的!

#15


    我现在在编写一个用声卡采集数据的控件,原先在win98下用_outp对声卡设置滤波,增益等,在我把系统升级到win2000后,这一却都成了美好的回忆,程序一运行到_outp,我的恶梦就开始了。我用的是以前的老声卡(isa),用windriver,我不大明白怎么在程序中调用windriver生成的东西,我装了windriver412版本,生成的冬冬在vc环境下有许多error,搞得我云里雾里,还望蚊子给我指点指点,推荐什么资料看一看,另外那个例子我还是不能运行,开始是“error while opening iont",后来可能和前面的问题一样,是不是因为我是从98升级到2000,还是wdreg -name windrvr.sys install没有运行正确(我是在他的快捷方式中设成
E:\fox\work\wdreg\wdreg.exe -name windrvr.sys install)不知道行不行,麻烦蚊子了

#16


windriver的参考文档很好的。
新给你发的邮件,看看。

#17


为什么一定要直接访问硬件?用audio mixers不行吗?
如果是特别的声卡,user mode的应用程序大概也不能随意直接访问硬件,导致不兼容,应该提供特别的驱动程序,user mode仍然用audio mixers完成。如果一定要在win2K里面直接读写端口,可以随便写一个非常小的驱动程序(从ddk里面抄个最基本的框架大概就行了),调用WRITE_PORT_XXX函数,处理IOCTL_XXXX请求,user mode 用createfile, ioctrl就搞定了。不过这样未免太牺牲兼容性。
我没写过声卡驱动,如果不幸误导,还请见谅。

#18


我给你封装了一个DLL,其使用就象oup()函数一样简单:
void WritePort(short port,BYTE outdata);
BYTE ReadPort(short port);
收信去吧!
呵呵呵呵!
等等,分,在哪?^_^

#19


//tea 蚊子

#20


我在下载
//tea 蚊子先

#21


汇报情况

#22


我这边的网速是在是那个慢,已经下载了75%,还要等一会

#23


猪呵,还没搞定吗?

#24


我要在2000下用并口在两太计算机间传输大量数据,怎么办啊

#25


当然不用直接电缆连接,可以自己编程吗

#26


nt下outport, inport, 和汇编的out, in都不好使哦,当时曾害得我以为我打印机端口坏了。。