makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1841回复:9

xp下如何写某些特定I/O端口(如70H,读没问题)

楼主#
更多 发布于:2003-12-25 18:59
我是用DriverStudio生成的WDM文件。在98下没有问题。对任何端口都可以进行读写。(只要该端口不是只读或只写的)
但在XP下。发现好多端口都无法写。比如70H。(在98下可以的)
我又实验了一下378H(并口).却是可以读写的。是不是XP把好多端口都屏蔽了。不给读写了??我要操作的话该怎么办啊?
我的程序很简单的。
NTSTATUS AAADevice::OnStartDevice(KIrp I)
{
添加m_Myport.Initialize(
                    0x00,  
        TRUE,
                    255,    
                    TRUE
                   );
}
读写通过inb,outb实现。

我是新手。刚刚开始学习写驱动,请大家多多指导。
(另外我想问一下。如何自动安装驱动程序?)
feiye666
驱动牛犊
驱动牛犊
  • 注册日期2003-12-17
  • 最后登录2006-04-05
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-25 19:09
读写最好通过READ_PORT_UCHAR来读写
另外读写CMOS时要注意
1.cli关闭中断
2.还要对第7位进行操作
大概是这样
我也不是很在行

你可以看看PC技术内幕上的东西
上面好像有读写操作的代码你可以参考一下
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-25 19:13
不只是70H(71H我知道是只读的)其他很多端口都没办法写。(数字小的我好象没发现行的。数字大的好象才能写)
问题是98下没有问题。而XP下不可以啊!
我没牵扯什么中断。只是读写I/0端口而已。
Lingfeng
驱动牛犊
驱动牛犊
  • 注册日期2002-11-30
  • 最后登录2008-07-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-25 19:13
不会呀! 一般是可以读的呀.要用DDK中提供的函数来读写端口呀.
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-25 19:15
我用的是KIoRange::inb(这应该是封装了DDK的)
DDK中相应函数是什么??

是不是XP的问题?
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-26 17:56
有人回答吗??
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2003-12-26 23:29
在驱动中应该没问题,无所谓用那些HAL宏,我反汇编那些代码过,也是IN,OUT而已。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-27 09:58
READ_PORT_UCHAR READ_PORT_Ulong,READ_PORT_Ushort
write_PORT_UCHAR write_PORT_Ulong,write_PORT_Ushort
READ_REGISTER_UCHAR 等等,看DDK吧。
给分才有动力!所以我坚决给分!
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-29 15:38
你怎么知道没写进去,要不写个循环多写几次,会不会总线冲突
根据地的兄弟们,团结就是力量
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-29 20:48
我是先写后读的。
就是先把端口设置成某个值。然后就读出来看。

在98下一切OK。
XP下有很多端口写了没用。读出来的老是那个值。
游客

返回顶部