在Win2000下如果访问实地址? (200分)

  • 主题发起人 敏感的心
  • 开始时间

敏感的心

Unregistered / Unconfirmed
GUEST, unregistred user!
有如下代码:
(读取端口)
function ReadPortB( wPort : Word ) : Byte;
 begin
   asm
   mov dx, wPort
  in al, dx
   mov result, al
 end;
end;

写端口:
procedure WritePortB( wPort : Word; bValue : Byte );
begin
   asm
    mov dx, wPort
    mov al, bValue
    out dx, al
  end;
end;

在Win98下没问题,可以用它来使扬声器发声,但在Win2000下,却出错。

又:
var
s: string;
begin
s := string(Pchar(Ptr($FE061))); //主板BIOS信息
showmessage(s);
Win98没问题,Win2000下出错,在Win2000下如果做?
end;

请指点,小弟实在很急,谢谢!谢谢!

感谢各位指教,但是我具体该怎样做呢?小弟实在笨,望再指点指点;或者推荐一些这
方面的资料,非常感谢!
 
写驱动也许可能吧[:D]
 
在 NT 平台上,不允许直接存取硬件。写驱动可以。
 
通常你的代码在Ring3下,没有这个权限, 参考CIH病毒,提升你的权限到Ring0,就可以了
或者,网上有现成的控件,找一个也可以.
 
在2000下不能直接访问硬件
 
顶部