|
From: Joseph G. <gal...@va...> - 2002-06-12 03:47:19
|
> > > I get "No unclaimed devices!" from cdrom.c > > > and then the system bugchecks in device.c > > > calling ExFreePool(DriverObject) claiming > > > that the DriverObject is a non-allocated > > > address (magic c01aeee5) > > > > Could you replace this 'ExFreePool(DriverObject)' by > > 'ObDereferenceObject(DriverObject)'. This should fix the bug. > > No luck. I still get ExFreePool of non-allocated address -- > though now the address of the DriverObject is 0xc01aefe3 > and the address listed by ExFreePool is c007ebb0 (is this > due to the object header?) > > Additionally, the magic is now 0. My apologies. This did fix the bug; it's just that there is another similar one someplace. I believe we are now crashing in the call to IopFreeDeviceNode() from LdrInitializeBootStartDriver(). It appears to be on the line: RtlFreeUnicodeString(&DeviceNode->ServiceName); in IopFreeDeviceNode(). Hope this helps, cause I'm about out of time for today :-) Also, I notice that when we call IopInitializeDriver() from IopInitializeService(), we also call IopInitializeDevice(); IopInitializeDriver() seems to also call InitializeDevice() meaning in that particular case it would be done twice? - Joseph |