Hello.
Faced such a problem. There is an application using a certain functionality from DLL. The load is carried out dynamically, that is, with a bunch of LoadLibrary -> GetProcAdress
. The application functions quite normally until the computer goes into sleep mode and then goes out of it. The DLL library is automatically unloaded from the address space, oddly enough, not immediately after exiting from sleep mode, but in minutes, in 30-40 minutes. As you know, hibernation freezes all processes and, accordingly, the flows of processes before resuming the work (getting out of sleep). So, why, after these same 30-40 minutes, the system detects the DLL loaded into the address space of the application process invalid, useless and automatically unloads from memory? How can this be fixed?
Thank.
Hibernate
inMicrosoft
allowed the possibility of an unpredictable state of RAM at the time of recovery from this veryHibernate
. The non-deterministic state in this case is 204904590 times more critical than, say, a normal memory leak. - Costantino Rupert