win9x/nt下不支持int13。
好象可以通过int21 的7503号功能来完成读写磁盘的工作,可以查一查。
好象可以通过int21 的7503号功能来完成读写磁盘的工作,可以查一查。
解决方案 »
- DataHint V1.1 Beta 控件发布;拼音过滤类似 LookupComboBox
- 请问那位大侠能提供或介绍一些用DELPHI开发语音卡的资料?
- TXMLDocument在多线程中的错误,请求帮助~~
- 哪位老兄发个dent.slip 文件文件给我啊?谢谢啦……
- 一个关于数据精度的问题,大家快来帮帮忙:)
- 在delphi的菜单中如何调字体大小?
- delphi控件编写-怎样实现设计时菜单和动作行为?
- 又是数据打包的问题,zswang,netlib老兄进来看看
- delphi编译的32位Dll怎么转成64位Dll(有源码)
- 1.请问try{}catch(...){throw},_finally{throw}中的throw是什么意思啊?可以不写么?
- 关于BDE问题
- 菜鸟提问:如何获取程序的路径
int21的7503號功能我查不到,怎麼實現的可以給一個例子嗎???
我的EMail:[email protected] 先謝過了!
你講到的…让User32.dll加载,让User32.dll加载的方法是改注册表…怎麼做?能具體一點嗎?如果可以的話我想知道INT13在delphi怎麼實現!
...
你的汇编代码
...
end;
注冊表太不全安!可以備份注冊表!也可用工具監視!
TO: fenzi_123(Fenzi)
INT13中斷不能真接調用!help me!
help me!
help me!
2、win9x下读写磁盘,需要通过dos功能调用,int13/25/26都可以,但都有局限---不支持fat32(int13好象只对软盘有效),在win9x下新加了int21的7305h号调用,支持fat/12/16/32格式的磁盘的读写。
在win32中调用dos功能,需要通过vwin32.vxd(即先createfile得到此vxd的handle),使用deviceiocontrol向vwin32.vxd发控制码,deviceiocontrol的第三和第五个参数就是寄存器的设定。
int21的7305h的约定如下:
ax:7305h;
bx:指向一diskio结构;
cx:-1;
dl:驱动器号,1=a,3=c;
si:bit0=0为读,=1时为写,bit13到15另有意义。diskio结构:
struct ds
dwStartSector dd;
wSectorCount dw;
lpBuffer dd;
endsdeviceiocontrol的第一个参数设为vwin32_dioc_dos_driveinfo,具体的可查msdn。对于你的第二个问题,我想,你是想在硬盘的特定地方(比如某些扇区的内零头里)写入你的标记,这是可行的,然后在程序中检测或更新此设定就可了。
能給出具體的例子嗎!比如以下的代碼中win9x\winnt下怎麼實現!
以下代碼主要是寫c盤的0,0,1扇区!
我是想在0,0,2扇区寫入標志!因為0,0,2扇区是備用的!
代碼在後面!
d db 800 dup(0)
a db 'yours disk ends!$'
b db 'yours disk ok!$'
c db 'sorry!$'
data ends
code segment
assume cs:code,es:data,ds:data
org 100h
start:
mov ax,data
mov es,ax
mov ds,ax
mov ax,0201h
mov bx,offset d
mov cx,0001h
mov dx,0180h
int 13h
cmp ah,0
jnz k
mov si,01feh
mov bp,0aa55h
xor es:[si],bp
mov ax,0301h
mov bx,offset d
mov cx,0001h
mov dx,0180h
int 13h
k:
mov dx,offset c
cmp ah,0
jnz kkk
cmp es:[si],bp
jz kk
mov dx,offset a
jmp kkk
kk:
mov dx,offset b
kkk:
mov ah,09h
int 21h
mov ax,4c00h
int 21h
CODE ENDS
END START
vwin32_dioc_dos_driveinfo 定义为6,
inregs/outregs输入输出的寄存器组,只要填输入的inregs,按int21的7305h约定填就行了。具体的可查呀我有汇编的源码,但懒得找了。msdn上也有c的。
網上有沒有更詳細一個資料?
汇编的源码就不要了!在汇编下我也可以實現!隻是windows不
能直接訪問硬件!
ring 3 to ring 0 我有匯編的程序!不過隻能在win9x下!
請教一下ring 3 to ring 0後應該怎麼做啊???