From: njem on
I have a question on the details of how hibernate works. I know it's
saving everything in memory to the hiber file. Since power seems to be
truly off at hibernation I assumed the flag to tell the PC to resume
from the hiber file rather than normal booting must be either saved on
disk or flashed to a bit of bios rom space, or maybe in space
maintained by the clock battery. But the cure for a laptop that is
stuck in a loop of constantly resuming from hibernating is to unplug
it and take the battery out for a while so where actually is the flag
to signal the system that it's in hibernation?

Thanks,
Tom
From: John John - MVP on
njem wrote:
> I have a question on the details of how hibernate works. I know it's
> saving everything in memory to the hiber file. Since power seems to be
> truly off at hibernation I assumed the flag to tell the PC to resume
> from the hiber file rather than normal booting must be either saved on
> disk or flashed to a bit of bios rom space, or maybe in space
> maintained by the clock battery. But the cure for a laptop that is
> stuck in a loop of constantly resuming from hibernating is to unplug
> it and take the battery out for a while so where actually is the flag
> to signal the system that it's in hibernation?

Ntldr looks for and parses the hiberfil.sys file, if the file is
found to be valid it is loaded into memory and the Windows kernel takes
control of the session. Any changes that you make to the computer after
it is shut down can potentially prevent the computer from resuming from
hibernation, undocking a laptop or something as simple as
plugging/unplugging USB devices can prevent the computer from
sucessfully resuming from hibernation. I suspect that removing your
battery for an extended period resets certain settings in the BIOS and
this prevents the computer from resuming from hibernation. When the
computer successfully resumes the hyberfil.sys file is marked as
inactive, this prevents ntldr from loading a stale hiberfil.sys file.

John
From: njem on
On Jan 21, 8:17 pm, "SC Tom" <s...(a)tom.net> wrote:
> I don't think that anything is written to BIOS on hibernation. It's just a
> flag that is set in the OS startup to bring the system back to where
> hiberfil.sys saved it. If Windows (or any other OS) had the ability to write
> to BIOS, imagine what a field day the malware authors of the world would
> have :-)

It may be something the OS does within its own files but it could
certainly be in bios space. The bios could have a service call to set
a hibernation flag without opening access. And bios flash utilities,
some of which run right in win, right to bios. And years ago I
remember there were hacker utilities to read bios (even though it was
supposed to be protected) let you modify it (if yours had become
corrupted) and rewrite it. Also if I'm not mistaken hinernation only
works with bios that support it. That would be one advantage to what
you're describing. Bios wouldn't matter.
From: njem on
On Jan 21, 10:00 pm, John John - MVP <audetw...(a)nbnot.nb.ca> wrote:
>
> Ntldr looks for and parses the hiberfil.sys file, if the file is
> found to be valid it is loaded into memory and the Windows kernel takes
> control of the session.  Any changes that you make to the computer after
> it is shut down can potentially prevent the computer from resuming from
> hibernation, undocking a laptop or something as simple as
> plugging/unplugging USB devices can prevent the computer from
> sucessfully resuming from hibernation.  I suspect that removing your
> battery for an extended period resets certain settings in the BIOS and
> this prevents the computer from resuming from hibernation.  When the
> computer successfully resumes the hyberfil.sys file is marked as
> inactive, this prevents ntldr from loading a stale hiberfil.sys file.
>
> John

I think we're all working in the dark. As noted to SC Tom, if it were
strictly an OS function then bios wouldn't have to support it. And I
had one case that would conflict with the scheme you described. I had
a desktop that was stuck in a resume from hibernation loop. I thought
I would be clever and take the drive out, put it in another system,
delete the hiberfile, put it back and was sure it would be fine.
Instead it still tried to resume from hibernation but immediately
complained about an error in resuming. Also when I"ve taken a laptop
battery out then restart it doesn't try to resume, fail, and then boot
from scratch, it goes straight to normal boot. It's really not that
important but I wanted to better understand so when I have cases like
the stuck desktop I know what's going on and how to get out of it.

Thanks,
Tom
From: SC Tom on


"njem" <njem(a)q.com> wrote in message
news:f3268a1e-e83a-4171-a140-29f954cb441a(a)f12g2000yqn.googlegroups.com...
> On Jan 21, 10:00 pm, John John - MVP <audetw...(a)nbnot.nb.ca> wrote:
>>
>> Ntldr looks for and parses the hiberfil.sys file, if the file is
>> found to be valid it is loaded into memory and the Windows kernel takes
>> control of the session. Any changes that you make to the computer after
>> it is shut down can potentially prevent the computer from resuming from
>> hibernation, undocking a laptop or something as simple as
>> plugging/unplugging USB devices can prevent the computer from
>> sucessfully resuming from hibernation. I suspect that removing your
>> battery for an extended period resets certain settings in the BIOS and
>> this prevents the computer from resuming from hibernation. When the
>> computer successfully resumes the hyberfil.sys file is marked as
>> inactive, this prevents ntldr from loading a stale hiberfil.sys file.
>>
>> John
>
> I think we're all working in the dark. As noted to SC Tom, if it were
> strictly an OS function then bios wouldn't have to support it. And I
> had one case that would conflict with the scheme you described. I had
> a desktop that was stuck in a resume from hibernation loop. I thought
> I would be clever and take the drive out, put it in another system,
> delete the hiberfile, put it back and was sure it would be fine.
> Instead it still tried to resume from hibernation but immediately
> complained about an error in resuming. Also when I"ve taken a laptop
> battery out then restart it doesn't try to resume, fail, and then boot
> from scratch, it goes straight to normal boot. It's really not that
> important but I wanted to better understand so when I have cases like
> the stuck desktop I know what's going on and how to get out of it.
>
> Thanks,
> Tom

Yes, the BIOS has to support the function. I guess I was mixing up BIOS and
CMOS. After further research, I think I found out what was confusing me (and
believe me, I can be easily confused :-) ). Since the bootstrap loader is
handled by BIOS, I would bet that's where the information to access the
hibernation file is loaded. Sorry for any confusion I may have caused. It's
all clear as mud to me now.
--
SC Tom