cogi
驱动牛犊
驱动牛犊
  • 注册日期2001-10-22
  • 最后登录2002-03-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:831回复:0

Get first cluster problem.

楼主#
更多 发布于:2001-11-21 23:43
小弟写了个VXD,需要读取文件的第一簇,我用INT 21H (440DH).但我的代码总是返回错误(05h),请各位大虾帮忙看看,不胜感谢

Save_Client_State(&saveRegs);

CLIENT_STRUCT* m_regs = (PCLIENT_STRUCT)Get_Cur_VM_Handle()->CB_Client_Pointer;
if (Map_Lin_To_VM_Addr((PVOID)buf,260*2,&dwseg,&dwoff)) //buf contain the file path,the length is 260*2.
{
    m_regs->CWRS.Client_AX = 0x440d;
    m_regs->CWRS.Client_BX = 0x0;
    m_regs->CBRS.Client_CH = 0x48;
    m_regs->CBRS.Client_CL = 0x71;
    m_regs->CRS.Client_DS  = dwseg;
    m_regs->CWRS.Client_DX = dwoff;


    Begin_Nest_V86_Exec();

    Exec_Int(0x21);
    dwseg = m_regs->CWRS.Client_DX;
    dwoff = m_regs->CWRS.Client_AX; // always return 05h
    End_Nest_Exec();

    Restore_Client_State(&saveRegs);
}
cogi
游客

返回顶部