I'm making check disk program.
Using FMIFS.DLL, I've made it on Windows NT, 2000, XP.
But I have problem on Windows 98.
Windows 98 uses DSKMAINT.DLL.
I got following exported functions for cheching disk.

DMaint_GetEngineDriveInfo
DMaint_FormatDrive
DMaint_GetFormatOptions
DMaint_FixDrive
DMaint_GetFileSysParameters

But, I could not know these function's parameters.
So, debuging "scandskw.exe" on Win98 with SoftICE, I intend to get these function's informations.
I'd like to set breakpoint above functions. but Symbol loader makes error loading exports of DSKMAINT.DLL.
I guess Because it's 16bit NE file format.
How can I solve this problem.
How can I get information of undocumented functions of DLL.
Any help would be appreciated~!
Posted on 2004-02-24 20:10:55 by snoya
Use PEBrowsePro, it will list every function and even give you the number of arguments. If you need more info on a specific undocumented function you are out of luck, there is no documentation on it, that's why they call them undocumented. However, sometime Google shows up with something on them.
Posted on 2004-02-24 20:55:52 by donkey
Doese PEBrowsePro handle NT executables? :)

You're probably better off using IDA anyway, but... all of this would 'probably' be violating the license agreement you got from MS.
Posted on 2004-02-25 00:36:36 by f0dder

Doese PEBrowsePro handle NT executables? :)

You're probably better off using IDA anyway, but... all of this would 'probably' be violating the license agreement you got from MS.

Not sure, I have never found anything better. I haven't found an executable or DLL that it has not handled perfectly. It hanldes the NT specific DLLs fine though as well as all of the Unicode functions. Always found IDA to be over-produced like SoftIce, you spend most of your time learning it. With PEBrowsePro I just drag and drop the DLL into the window double click an export and the code shows in a window with arguments. I use it for debugging my DLLs.
Posted on 2004-02-25 04:07:23 by donkey
You can't load these DLLs with Symbol Loader. You have to put this line in your WINICE.DAT file and restart Windows:
EXP=C:\WINDOWS\SYSTEM\DSKMAINT.DLL
Posted on 2004-02-25 09:03:06 by Sephiroth3
donkey, right tool for the job :) - IDA and Softice are most likely too heavy for what most people here need. But for non-trivial things, there really isn't any way around IDA... and for ring0 code debugging, you do need a ring0 debugger :)

I tend to fire up olly for the smaller things, which means most of the time. If I'm debugging a small piece of asm code, there's no reason to load neither softice or visual studio.

Btw, there was a typo in my post - I mean "NE" not "NT" executables - those are two different worlds (NT uses PE, and that's where 9x got it from anyway). NE is the old 16bit "New Executable" format used by win3.x (and a bunch of win9x stuff, since win9x is such a patchwork of dos, win3.x and 32bit code).
Posted on 2004-02-25 10:04:29 by f0dder