essentially, I've tracked down the problem to SerialPnpStartDevice() being called with ResourceList == NULL.
Here's the details, if ya want 'em:
serial.sys exception not handled stop 1e ( c0000005, 9d2f9019, 0, 0 ) serial.sys address 9d2f9019 base 9d2f6000 page fault 14(0) cs:eip 8:9d2f9019 <serial.sys: 3019> pnp.c:168 cr2 0 cr3 27000 proc: 8084ad00 Pid: 4 <System> Thrd: 8084b828 Tid: 0 DS,ES,GS=10 FS=30 eax 808a7660 ebx 0 ecx 808a7580 edx 808a7828 ebp 800bc9b4 esi 808a77b8 esp 800be808 edi 0 eflags 00210292 kesp 800be808 kernel stack base 800bd000 frames: <serial.sys: 352b> pnp.c:341, SerialPnP() calling SerialPnpStartDevice() <ntoskrnl.exe: 329c5> io/irp.c:212, IofCallDriver() calling indirect <ntoskrnl.exe: 329e1> io/irp.c:226, IoCallDriver() calling IofCallDriver() <ntoskrnl.exe: 34975> io/pnpmgr.c:665, IopInitiatePnpIrp() calling IoCallDriver() <ntoskrnl.exe: 2d151> io/device.c:78, IopInitializeDevice() calling IopInitiatePnpIrp() <ntoskrnl.exe: 2fa9d> io/driver.c:1890, NtLoadDriver() calling IopInitializeDevice() <ntoskrnl.exe: 318b> ke/i386/syscall.S:178 <ntoskrnl.exe: 2536d> ex/zw.S:771, ZwLoadDriver() <ntoskrnl.exe: 2efa1> io/driver.c:1378, IopInitializeSystemDrivers() calling IopLoadDriver() <8007cc61> ??? only possibility is: IoInit3() calling IopInitializeSystemDrivers() <8007d7ac> ??? only possibility is: ExpInitializeExecutive() calling IoInit3() <ntoskrnl.exe: d04c> ke/main.c:104, KiSystemStartup() calling ExpInitializeExecutive() <80079290> ke/main.c:283, _main() calling KiSystemStartup(); <ntoskrnl.exe: 104b> ke/i386/main.S:51
now, serial.sym: 13019: 8b 07 mov (%edi),%eax
C:\cvs\reactos\drivers\dd\serial>addr2line -e serial.nostrip.sys 13019 C:/cvs/reactos/drivers/dd/serial/pnp.c:168
C:/cvs/reactos/drivers/dd/serial/pnp.c:168: for (i = 0; i < ResourceList->Count; i++)
notice edi is NULL, which is holding the value of ResourceList, which traces it's origin back to:
IoGetCurrentIrpStackLocation(Irp)->Parameters.StartDevice.AllocatedResources which in turn comes from: DeviceNode->BootResources at ntoskrnl/io/device.c:68 in IopInitializeDevice() there's a FIXME on the line above: /* FIXME: Should be DeviceNode->ResourceList */
hpoussin, or anybody else? should serial.sys handle a NULL ResourceList gracefully ( imho it should probably have some SEH in there ), or is it a bug for it to be getting a NULL ResourceList?