阅读:831回复:0
Get first cluster problem.
小弟写了个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); } |
|
|