I am trying to program my own disk doctor what do i need to do? What code do i use?:alright:
Posted on 2001-12-30 08:02:42 by gene
You know who you might want to talk to, the guy who did one of the first, he is an avid assembler freak. probubly some know who I mean, his name is in a LOT of links, he is doing a project, but hay he may have a shi* load of data on drives. I wish I could remember his name, been on his site MANY times, a brillient coder


Be right back
Posted on 2001-12-30 16:18:40 by Anunitu
Gene, I sent an E-mail to Steve Gibson, do you know who he is?
I asked hism if he has any data on disk structurs. I don't know if he will answer me, or help, but it was worth a try, even hit him with the guilt thing, did he remember someone taking time to give him some advice? I know for a fact someone did..I knew the person who took time out of a busy life to talk to a young coder.

He may not know this handle, but he will remember that time for sure. At least I hope he will, or he isn't the coder I remember

Posted on 2001-12-30 16:39:10 by Anunitu
Posted on 2001-12-30 17:16:31 by Dr. Manhattan
Damn steves office clones sent a recomindation on how to search the web, I told them to tell steve hello from the Hobbit.

That should trip out his day.


Its a name he hasen't heard in over 30 years
Posted on 2001-12-30 17:57:17 by Anunitu
Damn you manhattan, I was going to post that link :-D.
Gibson knows some stuff, but he's namedropping a lot, and sometimes
I get the impression he's all words and no action. He likes CAPS
and bold a lot, and he's a media whore... but behind all the
glitter, there's some sound opinions and at least *some* knowledge :).

If you don't even know where to start when building a disk
doctor thingy, perhaps you should mess with other stuff for a few
Posted on 2001-12-30 22:44:34 by f0dder
yo! tanx for the boost man.. Ive been workin about 48 hrs now researching stuff now i have lot of stuff covered.. but how about this.. could i use bios interrupts like int 13 in win32 assembly..

Posted on 2001-12-31 06:23:06 by gene
That'd be cool if you could :grin: You will probably have to write vxd in order to access the hard disk raw like that..
Posted on 2001-12-31 17:22:00 by Eagle17
For that u need to get in to VxD's my friend i am writing on with the help of the source code u can get that at sysinternals.com it's name is "filemon"..ok & other.exe (help for Vxd) on microsoft DDk page

i do have a problem related to this stuff while writing VxD
so if any one can help me!

need to pass some parameter's to the procedure
(i.e sam ),whose paramter's r filled by the system on entrying the call, normally we do

BeginProc sam

EndProc sam

but, if i have to pass the paramter's what's the syntax to pass the paramter's & how to define that parameter's

help me! thank's
Posted on 2002-01-26 06:47:04 by pt_sniffer
pt_sniffer, you want to know, how to pass parameters?


Sam PROC Parameter1:DWORD, Parameter2:WORD, Parameter3:BYTE

mov eax, Parameter1
mov ax, Parameter2
mov al, Paramater3
mov ah, Paramater3



If there are parameters in your procedures and the code for that procedure lies after the start/main label, you need to have a prototype.

Sam PROTO stdcall :DWORD, :WORD, :BYTE

if you don't have any parameters, then you don't need a prototype, you can either call it or invoke it, doesn't matter.

if you do have parameters, you can then invoke it by: invoke Sam, edx, dx, dl, it can be anything you want, could be an immediate value or a register or a pointer...it depends on what you are going to do about it.

the masm assembler will flag an error if you made a mistake.

If you want TASM style tell me, I'll post another one.

Posted on 2002-01-26 09:27:59 by stryker
umberg6007: thank's for that but u plz notice that i am wiriting a procedure in Vxd ..ok

i know that..ok umberg6007

ok i thought of writing the problem in detail...ok
here it comes
The Problem is-->

I am calling a Service(i.e XYZ) which requires only the address of the Procedure(i.e Sam),& when system call's this procedure later it pass some Parameter's to the procedure,hence I need to collect those passed parameter's to the procedure(i.e sam ) by the system, on entrying the Procedure, normally we do define Procedure as follow's

BeginProc Sam

EndProc Sam

but, if i have to pass the paramter's what's the syntax to pass the paramter's i think this can be done with ccall & Argvar ..as follows

BeginProc Sam, CCALL

ArgVar Param1, DWORD
ArgVar Param2, WORD ;--> this can be a Int
ArgVar Param3, 12 ;--> third parameter can be a 12-byte structure,
; passed by value

LocalVar Local1, DWORD
LocalVar Local2, <size FOO>

SaveReg <ebx, esi>
RestoreReg <esi, ebx>
EndProc MyProc

i Think that this is right way for collecting the parameter's from the system ..ok Plz correct me if i am wrong


And yes I do have a problem with this VMMCALL ..ok which call a service (i.e XYZ) Think it should be done like this

mov esp,OFFSET Sam

i thought i might have missed with that register calling & stack calling convention but i tried both

i get this error--> when i go by above codes

Assembling: firstvxd.asm
firstvxd.asm(41) : error A2054: forced error : value not equal to 0 : 63
VMMCall(1): Macro Called From
firstvxd.asm(41): Main Line Code
firstvxd.asm(57) : error A2054: forced error : value not equal to 0 : 63
VMMCall(1): Macro Called From
firstvxd.asm(57): Main Line Code

so i peeped in the .INC file i got these lines for that
service(i.e XYZ)
This procedure uses the C6 386 _cdecl calling sequence

Entry TOS = Address of function that is to be called

Exit EAX = Pointer to variable containing the address of the previous
function in this chain.
uses C registers
Plz do tell me what's that C6 386 _cdel calling sequence

so Plz help! or mail me ur suggestion's ( gj007_in@yahoo.com )
Thank's in Advance....
Posted on 2002-01-27 08:04:31 by pt_sniffer