关于VXD 方面的问题?????
hk318 2000-05-20 08:35:00 各位软件高手:
小弟在开发一个VXD时,(使用VToolsD for 95/98)
在myDevice类中自定义一个函数
bool ReadDiskSector(LPSTR buffer)//读软盘物理第1扇区 到 buffer 中
在其中使用中断函数 int 13h
{
DWORD mm_buf=(DWORD)buffer;
__asm{
mov eax,201h
mov ebx,mm_buf
mov cx,0001h
mov dx,0000h
int 13h
}
.
.
.
}
但一执行中断就蓝屏,报告错误。 本人百思不得其解????!!!
不是说在Ring0级下的Vxd 文件中可以使用任意低级操作吗?(难道不包括int 13h??)
还望行家指点!!
另:关于传入的buffer参数,是在Win32程序中申请的内存缓冲(use new )
是否可以直接传给 Ebx 寄存器? 还是要做变动?( in Vxd )
因为:
used "C " in DOS mode
{
resg.x.ax=0x0201; /* 02 for Read, 03 for Write ,05 for Format */
reg.x.bx=FP_OFF(buffer);
reg.x.cx=0x0001 /* for boot sector */
reg.x.dx=0 ; /* for drive A *
sreg.es=FP_SEG(buffer);
int86x(0x13,®,®,&sreg);
}