CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

Win2k可以调用int13中断读写磁盘吗?

楼主liushax()2003-07-03 17:46:33 在 其他开发语言 / 汇编语言 提问

Win2k可以调用int13中断读写磁盘吗?如果可以怎么做呢? 问题点数:20、回复次数:4Top

1 楼protale()回复于 2003-07-03 18:05:27 得分 4

对于软盘的访问没有限制;对于硬盘则不行,关于这方面的资料实在太多;可以查看以前的帖子。大致在2000下的方法是打开文件C:或D:或PHYSICALDRIVE0(即DISK   80)来进行读写;当然也可以通过驱动Top

2 楼hotrain(hotrain)回复于 2003-07-03 21:17:26 得分 4

如果写个DOS程序在WIN2K下运行的话,可以用INT13H。但是写成WINDOWS程序就不行了。查一下DDK方面的资料吧。  
   
  Top

3 楼firstrose(kots)回复于 2003-07-04 19:32:38 得分 2

ring3无法用int13Top

4 楼atm2001(松鼠)回复于 2003-07-04 20:45:14 得分 10

 
  进ring0,用V86模式用int13.  
  或者在ring0里用古老的未公开的函数:  
  Ke386CallBios(UCHAR   Int,   PKV86M_REGISTERS   Regs);  
  Ki386RetToV86Mode(PKV86M_REGISTERS   InRegs,  
              PKV86M_REGISTERS   OutRegs);  
   
  相关结构及常量  
  ::  
  #ifndef   __NTOSKRNL_INCLUDE_INTERNAL_V86M_H  
  #define   __NTOSKRNL_INCLUDE_INTERNAL_V86M_H  
   
  #ifndef   __ASM__  
  /*   Emulate   cli/sti   instructions   */  
  #define   KV86M_EMULATE_CLI_STI                     (0x1)  
  /*   Allow   the   v86   mode   code   to   access   i/o   ports   */  
  #define   KV86M_ALLOW_IO_PORT_ACCESS             (0x2)  
   
  typedef   struct   _KV86M_REGISTERS  
  {  
      /*  
        *   General   purpose   registers  
        */  
   
      ULONG   Ebp;  
      ULONG   Edi;  
      ULONG   Esi;  
      ULONG   Edx;  
      ULONG   Ecx;  
      ULONG   Ebx;  
      ULONG   Eax;  
      ULONG   Ds;  
      ULONG   Es;  
      ULONG   Fs;  
      ULONG   Gs;  
   
      /*  
        *   Control   registers    
        */  
      ULONG   Eip;  
      ULONG   Cs;  
      ULONG   Eflags;  
      ULONG   Esp;  
      ULONG   Ss;  
   
      /*  
        *   Control   structures  
        */  
      ULONG   RecoveryAddress;  
      UCHAR   RecoveryInstruction[4];  
      ULONG   Vif;                                      
      ULONG   Flags;  
      PNTSTATUS   PStatus;  
  }   KV86M_REGISTERS,   *PKV86M_REGISTERS;  
   
  NTSTATUS   STDCALL  
  Ke386CallBios(UCHAR   Int,   PKV86M_REGISTERS   Regs);  
   
  #else   /*   ASSEMBLER   */  
   
  /*  
    *   Definitions   for   the   offsets   of   members   in   the   KV86M_REGISTERS  
    */  
  #define KV86M_REGISTERS_EBP (0x0)  
  #define KV86M_REGISTERS_EDI (0x4)  
  #define KV86M_REGISTERS_ESI (0x8)  
  #define   KV86M_REGISTERS_EDX (0xC)  
  #define KV86M_REGISTERS_ECX (0x10)  
  #define   KV86M_REGISTERS_EBX (0x14)  
  #define   KV86M_REGISTERS_EAX (0x18)  
  #define KV86M_REGISTERS_DS (0x1C)  
  #define   KV86M_REGISTERS_ES (0x20)  
  #define   KV86M_REGISTERS_FS (0x24)  
  #define   KV86M_REGISTERS_GS (0x28)  
  #define   KV86M_REGISTERS_EIP           (0x2C)  
  #define   KV86M_REGISTERS_CS             (0x30)  
  #define   KV86M_REGISTERS_EFLAGS     (0x34)  
  #define KV86M_REGISTERS_ESP           (0x38)  
  #define   KV86M_REGISTERS_SS (0x3C)  
   
  #endif   /*   ASSEMBLER   */  
   
  #endif   /*   __NTOSKRNL_INCLUDE_INTERNAL_V86M_H   */  
   
  其它的东西很多人讲过了,自己做吧。Top

相关问题

  • 调用Dos中断
  • c++如何调用中断
  • 关于中断调用的问题,急!!!
  • 如何调用定时器中断?
  • C语言能不能直接调用磁盘驱动,按块访问磁盘?
  • 如何调用磁盘上的.htm文件?????????????????????????
  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 那里可以查到bios中断调用的资料?
  • 有谁能告诉我c中中断调用的方法
  • 怎样调用Dos中断得到网卡号?急!

关键词

  • win2k
  • ulong
  • pkv
  • registers
  • kv
  • define
  • int13

得分解答快速导航

  • 帖主:liushax
  • protale
  • hotrain
  • firstrose
  • atm2001

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo