|
From: Eric K. <ek...@rz...> - 2002-06-12 13:41:16
|
"Joseph Galbraith" <gal...@va...> wrote: > My apologies. This did fix the bug; it's just that there > is another similar one someplace. Unloading a driver (or module) is still a risky thing because a) the driver object and its corresponding module are not attached to one another in any way and b) the driver object does not do any cleanup by itself yet. This will have to be fixed. > 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 :-) I already found this bug yesterday. It should be fixed in my local source tree. > 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? This is another part of the current driver mess. Needs to be cleaned up too. Thanks for your hints! I'm currently reworking the load routine for system start drivers. When this is done I will have a look at driver unloading. Regards, Eric |