|
From: Joseph G. <gal...@va...> - 2002-06-11 22:53:18
|
> > 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. Is this the general rule -- that objects allocated by ObCreateObject() should be free'd via ObDereferenceObject()? I think I've spotted several other failure cases in my soujurns through the code that do ExFreePool on the object -- and I debated with my self which to do in the NtCreateToken(). Do you think that it is possible that some is dereferencing the driver object w/o first having referenced it? - Joseph |