joakim: I really appreciate you testing this driver out! I thought for sure that karyonix' GRUB4DOS memory-mapping driver a couple of days ago would put this one under a rock forever. Heh.
You asked about symbol files earlier: I fill in my
File ->
Symbol File Path... text field with:
c:\windows\iscsi2\symbols\sys;srv*c:\tmp*http://msdl.microsoft.com/download/symbols
You can put
.PDB files corresponding to the debugging target system's
.SYS files inside your
C:\TMP\ directory on the debugging host system.
AOE32.PDB can go in there.
You asked about how I could tell what your problem in your last debug log was from the log: Because the point of the crash was exactly where
NDIS.SYS functions were being called.
Protocol_XXX() lines make use of
NDIS.SYS.
Your new debugging log escapes me for now, but I'll look into it a little later today. All I can recall is that there was a point where I ran into trouble if I "debug-break"ed the target system before it was fully booted. In both of the debug logs you've submitted, it appears that your debugger is set to request an "Initial Breakpoint" as soon as the OS loads, so this could be a problem. Please try removing the
/DEBUG and
/DEBUGPORT= and
/BAUDRATE= switches, just to see if it makes any difference.
I think that a nice HowTo is in order, so... One can likely use very similar instructions karyonix provided for his GRUB4DOS-memory-mapped-drive-Windows-driver to "inject" this driver into a Windows. Thanks again, karyonix! Besides that, I think the MEMDISK specifics should be explained a bit more...
Here's a sample
syslinux.cfg file for use with SYSLINUX on a FAT[12|16|32] filesystem (floppy or HDD partition):
DEFAULT memdiskxp
LABEL memdskxp
KERNEL memdisk
APPEND raw
INITRD memdskxp.hdd
A
pxelinux.cfg/default file would look very similar. An
isolinux.cfg file would look very similar, also.
memdskxp.hdd in the sample file above should be a raw (
dd-style; sector-by-sector) HDD image. I've changed the logic a bit so it shouldn't matter what boot-loader(s) is(/are) installed on the HDD image. The driver looks for a signature in MEMDISK's code now, instead of at the most recent INT 0x13 vector.
From GRUB[4DOS], assuming
memdskxp.hdd is in the root directory on a bootable CD, you could have the following in your
menu.lst file:
root (cd)
kernel memdisk raw
initrd /memdskxp.hdd
To "inject" into a Windows XP PE environment,
TXTSETUP.SIF's
ScsiClass.Load section could go something like:
[ScsiClass.Load]
cdrom = cdrom.sys
disk = disk.sys
floppy = sfloppy.sys
ramdisk = ramdisk.sys
aoe32 = aoe32.sys
For a full XP installation (not
/MININT, not with
SETUPLDR), you can simply install the driver using the instructions in the
ReadMe.txt file included in the driver download.
I will try to get to the bottom of why the driver crashes when you have a debugger attached, joakim. Thanks again for helping to test this; it helps with development.
- Shao Miller