阅读:2028回复:2
谁知道Ke386CallBios的用法,有了它,直接读写屏墓,磁盘都很容易解决。
这个函数十分强大,有了它,直接读写屏墓,磁盘都很容易解决。
完全向DOS那样开放。 我已能肯定NT的屏墓操作最后会调它来Call BIOS服务。 它的参数我已猜出 如下: NTSTATUS Ke386CallBios(BYTE Func,PBIOS_REQ BiosReq); typedef struct _tagBIOS_REQ {//寄存器的运行环境为V86模式下的1000:0000 //且Buffer[0x88]会被映射到1000:2CD0上,如果要用 //ES:DI传参数给BIOS的话,可把ES:DI->1000:2CD0, //然后再往Buffer里填参数。 DWORD State; BYTE Buffer[0x88]; DWORD GS; DWORD FS; DWORD ES; DWORD DS; DWORD EDI; DWORD ESI; DWORD EBX; DWORD EDX; DWORD ECX; DWORD EAX; DWORD EBP; DWORD EIP; DWORD CS; DWORD UnKnown1; DWORD ESP; DWORD SS; }BIOS_REQ,*PBIOS_REQ; 可惜啊,可惜啊,可惜啊,可惜啊,可惜啊,可惜啊。 但调它之前必须做些什么。 |
|
沙发#
发布于:2001-11-08 09:33
我可以写一个DRIVER 去直接读写屏幕线性内存在winnt,win2000环境下.
|
|
板凳#
发布于:2001-11-12 14:35
如果调用没有成功你也敢说猜出了?:)
如果真的如你所说那么此调用应该用到1个TSS. 这样就要避免线程切换. 请尝试将IRQL提示到DISPATCH_LEVEL |
|
|