加入收藏    联系我们    

首页 | 公司简介 | 数据恢复 | 成功案例 | 技术中心 | 服务报价 | 客户服务 | 联系我们 | 技术论坛 | 北亚博客     
 当前位置:首页 >> 技术中心 >> 相关编程资料 >> 正文
 
关于INT13H EXT操作的 C 源程序

作者:北亚  来源:北亚数据恢复中心  发布日期:2007-8-9 17:07:47  点击次数:

关于INT13H EXT的数据结构及操作见:
http://zli.webspace4free.biz/page5.html

 

/**
 * 硬盘操作:"读"操作(0x42),"写"操作(0x43),\n 
 * "cmd" must be Diskread(0x42) or Diskwrite(0x43).
 * @return >=0: 成功,读写的数据块数;
 * @return -1: 失败.
 */
short _diskop (unsigned char drv, unsigned char cmd,
     unsigned char * buffer, unsigned long startlow, unsigned short copyblks)
{
 /* 磁盘存取数据包结构 */
 struct disk_address_packet {
  unsigned char size_of_packet;
  unsigned char reserved;
  unsigned short number_of_blocks_to_transfer;
  unsigned short transfer_buffer_offset;
  unsigned short transfer_buffer_segment;
  unsigned long starting_absolute_block_low;
  unsigned long starting_absolute_block_high;
 };
 struct disk_address_packet dap;
 unsigned char av;

 

 unsigned char * pt = (unsigned char *) &dap;

 dap.size_of_packet = sizeof (dap);
 dap.reserved = 0;
 dap.number_of_blocks_to_transfer = copyblks;
 dap.transfer_buffer_offset = FP_OFF(buffer);
 dap.transfer_buffer_segment = FP_SEG(buffer);
 dap.starting_absolute_block_low = startlow;
 dap.starting_absolute_block_high = 0; /* 忽略高位 */

 asm {
  push ds
  push si
  mov ah, cmd
  mov dl, drv
  lds  si, DWORD PTR pt
  int  13h
  pop si
  pop ds
  mov av, ah
  jc  error
 }
 return (dap.number_of_blocks_to_transfer);

error:
 ErrorNum = av;
 return (-1);

}



上一篇:

在汇编中使用浮点运算的 DEMO

下一篇: 在汇编中使用浮点运算的 DEMO
 >> 服务电话
  北京总部: 4006-505-808
  上 海 部: 021-58358765
  深 圳 部: 0755-83692929
  浙 江 部: 13666673722
  广 州 部: 020-83821091
  重 庆 部: 023-86870422
  福 建 部: 0591-83300680
  昆 明 部: 15987117834
  其它地区: 4006-505-808
最新案例  
北京某超市-硬盘数据
移动硬盘格式化数据恢
苹果电脑误删除文件恢
笔记本数据恢复成功-
重装系统,原分区数据
分区无法访问,数据丢
硬盘数据恢复成功-日
解决方案  
RAID损坏后 对数据的完
LINUX FSCK数据出错灾
误删除、误格式化数据
误GHOST、误一键恢复灾
磁盘未被格式化,是否格
raid磁盘阵列OFFLINE后
硬盘出现异响应急处理
more>>
 >> 友情链接
数据恢复 数据恢复 数据恢复 数据恢复 数据恢复 数据恢复 数据恢复
返回首页 | 关于我们 | 在线留言 | 联系我们 | 友情链接

版权所有 北京北亚数据恢复中心
全国统一客服电话:4006-505-808 或 800-810-5880
中关村部:北京市海淀区中关村大街11号E世界A座8层832B室
皂君庙部:北京市海淀区学院南路68号吉安大厦C座(汇智楼)528室
京ICP备06031461