COM objects and XPE hibernation

C

chiccode

Hi Folks.
I'm experiencing a very bizarre situation which has been puzzling me for
some time. I have a WinXPE machine which I boot from an hibernated image
(usual HORM setup). Apparently everything is OK except for the fact that
exacly 25 days after the hibernation date the COM management service starts
behaving strangely. I mean that the OS sistematically destroys a COM object I
am using in my application even if its reference counter is 1 and exactly
after 6 minutes since its creation. Some additional elements are:
1) All this behavior is absolutely sistematic. After the 25 days you can
reboot the machine and the problem always occurs.
2) During the 25 days the application works perfectly.
3) No licence is involved and I'm positive it's not a matter of expiration
licence.
4) If I don't use hibernation no problem occurs.

Any ideas what could be the reason?
 
C

chiccode

Well, the disk we boot from is SATA.
One additional element is that the ATL COM object which is mysteriously
destroyed implements the DllCanUnloadNow() method which gets called by
OLE32.dll. I tried overriding this method forcing it to return *always*
S_FALSE but this apparently has no effect: the first time the method is
called the COM object gets destroyed even if its reference counter is 1.
And, I repeat myself, this starts happening only after exactly 25 days since
last hibernation.

Regards,

E.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top