xdkui
驱动牛犊
驱动牛犊
  • 注册日期2004-02-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望6点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2052回复:0

请教IOPM和Ke386QueryIoAccessMap???

楼主#
更多 发布于:2005-07-10 16:31
  1,IOPM中0表示允许对应端口的IO,1表示禁止对应端口的IO??


2,还一个问题,请问谁对BOOLEAN Ke386QueryIoAccessMap(ULONG MapNumber, PKIO_ACCESS_MAP IoAccessMap);比较了解,帮看下下面的代码?


.text:000120E4                 mov     esi, ecx  //ecx指向一段buf
.text:000120E6                 mov     edi, esi
.text:000120E8                 mov     ecx, 800h
.text:000120ED                 rep stosd
//如果有下面4行,则程序中对低256个端口IO时还有异常
//如果去掉这4行,则对低256个端口也可IO
.text:000120EF                 mov     edi, esi
.text:000120F1                 mov     eax, 0FFFFFFFFh
.text:000120F6                 mov     ecx, 8
.text:000120FB                 rep stosd

.text:000120FD                 lea     eax, [esi+2000h]
.text:00012103                 push    eax
.text:00012104                 push    1
.text:00012106                 call    Ke386QueryIoAccessMap
后面有Ke386SetIoAccessMap把esi+2000h做参数IoAccessMap设置了。

我想问的问题是.text:000120FD                 lea     eax, [esi+2000h]这句把esi+2000h当作

Ke386QueryIoAccessMap的一个参数,为什么调用这个函数前对这个buf的初始化起作用呢??

Ke386QueryIoAccessMap里不是把esi+2000h开始的2000h字节都设置了吗?
游客

返回顶部