I want to write data to the BIOS for validation purposes from an application on the fly.How can i accomplish this.

Thanks in Advance
Posted on 2004-01-09 04:53:09 by shy_sun
What do you mean? Do you want to flash the BIOS, or do you want to change BIOS settings?

The first is basically a no-no... and afaik requires specific code for a few different flash memory types.

The second is doable, but requires you to update the bios checksum. Besides, different BIOSes have things in different places, and generally you shouldn't be changing these either.
Posted on 2004-01-09 06:36:19 by f0dder
Am I wrong or this can't be done in Windows?

Posted on 2004-01-09 06:38:19 by Eternal Idol Birmingham
It can be - depending on what you need, you'll probably need a KMD though. Also, flashing your BIOS while running a multitasking OS might not be all that safe ;) - I think some MSI boards support it at least under WinXP though?
Posted on 2004-01-09 06:51:52 by f0dder
I have always (over a dozen times total) burned my BIOS from Windows 2k/XP on both my ASUS A7A266 and Epox RD8+.
Posted on 2004-01-09 09:43:14 by bitRAKE
So it works flawlessly? Is it done in r0 with interrupts and everything disabled, or does it run like any ring3 process? I guess it should work as long as the process is not aborted, I'm just a bit superstitious about BIOS flashing :) - perhaps you can shed some more light about it? Does BIOS flashing require strict timing for the writes, or is the only issue that you have to finish the flashing to avoid a borked system?
Posted on 2004-01-09 10:28:07 by f0dder

Does BIOS flashing require strict timing for the writes, or is the only issue that you have to finish the flashing to avoid a borked system?
The process must be completed before rebooting. As long as the flash program is able to detect errors in the process and is able to start over or continue then there is no problem. I doubt there is much BIOS access during normal operation of windows, but I could be wrong.
Posted on 2004-01-09 19:39:15 by bitRAKE
I think there is "some" BIOS access in 9x (well, at least there's DOS access - the win32 time APIs end up calling DOS ints for their services...). On NT there shouldn't really be any, except perhaps for some power management and PCI bios stuff. I think.
Posted on 2004-01-10 05:50:40 by f0dder
Hmm, I think it only does that if you're running in safe mode or using strange hard drives. But I think the BIOS is usually copied into RAM at startup, which means that updating the flash memory wouldn't affect system operation until it is rebooted. To be extra safe, a Windows 9X driver could call the Begin_V86_Serialization service before updating the BIOS, and End_V86_Serialization afterwards.
Posted on 2004-01-10 08:30:34 by Sephiroth3
Hrm, I have some vague remembrance of using a VXD to hook a dos service interrupt to make "time stand still" - affecting win32 time functions too. Considering what a mixed pile of 16/32bit shit win9x is, well...
Posted on 2004-01-10 10:22:19 by f0dder