ACPIEC warning

Tue, 2007-07-17 13:29 by admin · Forum/category:

Some Windows XP users (particularly some with ASUS laptops) experience the following warnings, sometimes very many of them, in the system event log:

Type: Warning
Source: ACPIEC
Category: None
Event ID: 3

Description: \Device\ACPIEC: The embedded controller (EC) hardware returned data when none was requested. This may indicate that the BIOS is incorectly trying to access the EC without syncronizing with the OS. The data is being ignored.

The problem seems to be known, though rare—a chatty ACPI Embedded Controller chip and Windows XP, which is newly sensitive to this, but no thorough solution is in sight so far. The most likely solution would be a corrected BIOS, but only if it is true what the warning message says. Another solution could be to remove the new sensitivity from Windows XP again and make it as deaf to unwanted ACPIEC babbling as all earlier versions of Windows were. But that's in Microsoft's hands.

It may be a dying problem, as faster processors reduce the impact and newer BIOS versions may prevent the problem in the first place.

As I found out much later, the errors are triggered by programs like temperature monitors or DVD playing programs, which query the ACPIEC chip for temperature or battery charge information or similar. The DVD player WinDVD, for example, does it to find out whether the battery of a laptop is running low.

At first I've suppressed this problem by crudely disabling the ACPIEC driver (acpiec.sys), but this disables most power saving functions as well. At least it solved my immediate problem that a video from DVD would jerk every three minutes while XP is busy writing a burst of ACPIEC warnings. So what I do now is disable the driver before watching a DVD and reenable it afterwards. I don't want the system to suddenly start saving energy while I watch a DVD movie anyway.

Please see the control files below. To get them, cut them out here, paste them into the editor and save them as Unicode text with a file name ending in ".reg". To use them, just double-click on them, answer yes to the question, then reboot. (I have not found any way so far to stop the driver without rebooting. When I try, the system refuses.)

I have the problem on an Asus A1B notebook with the 0110 BIOS—the latest.

 
     File: ACPIEC Off.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPIEC]
"Start"=dword:00000004

 
     File: ACPIEC On.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPIEC]
"Start"=dword:00000000

 

If you've tried any of these proposals and if you could find out whether they worked or didn't work for you, please add a comment.

FanController on Acer one

Mon, 2009-02-23 18:53 by kachaloo

When I started my ACER ONE 150. XP home. was making really annoying (worrrying) noises. I have already this FanController called (A1CTL or A1controller as I call it). There is an option to PATCH ACPIEC.( http://nodadev.wordpress.com/pc-projects/a1ctl/ ) I applied it and it is OK now.

MY ERROR LOG
Event Type: Warning
Event Source: ACPIEC
Event Category: None
Event ID: 3
Date: 23/02/2009
Time: 18:26:44
User: N/A
Computer: XPHOME
Description:
\Device\ACPIEC: The embedded controller (EC) hardware returned data when none was requested. This may indicate that the BIOS is incorectly trying to access the EC without syncronizing with the OS. The data is being ignored.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 00 00 68 00 01 00 be 00 ..h...¾.
0008: 00 00 00 00 03 00 05 80 .......€
0010: 00 00 00 00 00 00 00 00 ........
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 00 00 00 00 00 00 ........
0028: 99 9e 36 00 20 22 0f 00 ™ž6. "..
0030: 10 01 4b 00 60 00 0a 00 ..K.`...
0038: 50 00 ac 2a 70 00 0a 00 P.¬*p...
0040: 10 08 16 00 80 00 0b 00 ....€...
0048: 10 08 46 00 60 00 09 00 ..F.`...
0050: 50 00 ff ff 70 00 09 00 P.ÿÿp...
0058: 10 08 15 00 80 00 09 00 ....€...
0060: 10 08 42 00 60 00 07 00 ..B.`...
0068: 50 00 ba 00 70 00 0c 00 P.º.p...
0070: 10 1a 15 00 80 00 0d 00 ....€...
0078: 30 83 0a 00 15 10 0e 00 0ƒ......
0080: 21 a2 0e 00 11 11 41 00 !¢....A.
0088: a1 02 3a 00 11 10 24 00 ¡.:...$.

Thanks for the good information

Mon, 2009-02-23 19:28 by admin

Sounds very interesting. I'm inclined to check whether the ACPI driver patch helps with my problem too. Probably does.

2005-07-27 Hyperthreading

Tue, 2007-07-17 18:55 by admin

Dave Stokes wrote that disabling hyperthreading on a Toshiba laptop stops the warnings, but is, of course, not an ideal solution.

2004-12-12 A new proposal

Tue, 2007-07-17 13:43 by admin

Alexandre Cavaco writes from Portugal:

"I have been having problems with ACPI too, I have an Acer notebook ... I found a way to alleviate the problem (or to solve it, has I currently don't have problems, but I only tested it for about 20 minutes).

"Open regedit, go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPIEC, and ErrorControl should have the REG_DWORD value 1. Change it to 0 and reboot. I think it should do the same as Alexandre Elias' proposal, and if I'm correct, it's a lot easier ..."

I have immediately tested this on my ASUS laptop, and it doesn't prevent the bursts of warnings in the event log here. So the driver hack to prevent the warnings is still required in addition. It is as yet unclear whether it causes any other improvement on my laptop. I'll wait until I find the time to watch several movies and hear from others as well.

2004-10-16 Cause narrowed down

Tue, 2007-07-17 13:41 by admin

Terry wrote from the UK that in his ASUS L8400 laptop the culprit causing the ACPIEC error log entries is ASUS Probe 2.04, a program that monitors the processor temperature. I tested this on my ASUS laptop and, indeed, ASUS Probe (2.06 in my case) is one of the culprits here too. I removed the program from the autostart settings. Thanks a lot, Terry!

However, this did not solve my entire problem. It turns out that my original problem with WinDVD is still there. The reason is that WinDVD itself queries the ACPIEC chip and thereby also causes bursts of ACPIEC errors every 30 seconds.

With some detective work using RegMon and lots of trial and error I found that adding a registry DWORD named PMSTARTMODES with a value of 2 reduces the incidence to once every three minutes and also seems to shorten the bursts, such that the movie halts no longer appeared in my first short test. I will continue testing this in future movie sessions and check whether I can live with it. Of course I still use the patched acpiec.sys driver to suppress the log entries. Check back here in a month or so, and you will see my next report. The saga continues.

2003-08-15 Patching the driver

Tue, 2007-07-17 13:38 by admin

Alexandre Elias wrote to me with a very interesting new proposal. He successfully patched the ACPIEC.sys driver, taking away its desire to write into the Windows log. Here's what he wrote, verbatim:

----- Beginning of mail from Alexandre Elias, minimally edited -----

Your page is the only helpful resource I found on the web for the ACPIEC problem, so I thought you might be interested in hearing this. I found a better workaround for the ACPIEC warnings bug in Windows XP. I tried disabling ACPIEC.SYS from the registry like you said, but as expected it also disables useful functionality (power management stuff like sleep mode seems unaffected, but the "magic buttons" on my laptop keyboard, like brightness and volume controls, stop working). So I wasn't really happy with the solution.

After tinkering around, I found a method to turn off the warnings without disabling any functionality --- but it involves an even uglier hack :). You can do it by modifying ACPIEC.SYS with a hex editor.

1. Go into \windows\system32\drivers and make a copy of ACPIEC.SYS to a new file called acpiecNoLog.sys.

2. Open acpiecNoLog.sys with a hex editor.

3. Most of the file will be unreadable garbage, but near the end you should be able to see a long series of null-terminated strings (the first is "MmUnlockPagableImageSection"). These are the names of the external functions dynamically linked by the driver.

4. Look for the function name "IoWriteErrorLogEntry". This is the function that writes the warnings into the system log. Now disable it by replacing the string, byte-for-byte, with "IOFreeErrorLogEntry". Note that this is one character shorter than the original, so make sure to replace the final 'y' with a null byte. Be careful to use an honest-to-god null (0x00) and not an ASCII space (0x20). And especially do NOT just delete the character, as that would pull up everything after it by one byte and screw up addressing. Visually:

    I o W r i t e E r r o r L o g E n t r y

becomes byte-for-byte:

    I o F r e e E r r o r L o g E n t r y

5. Verify that you hacked the file properly by checking the file sizes. If you didn't screw up, the old ACPIEC.SYS and your new acpiecNoLog.sys should be precisely the same size.

6. Change the ACPIEC service registry key to point to your new hacked driver: i.e. in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPIEC, make sure ImagePath = "System32\DRIVERS\acpiecNoLog.sys". You can't just overwrite the old driver, because Windows has some kind of safeguard that prevents you from modifying system files.

7. Reboot, and enjoy.

It isn't for the faint of heart, but hey, it works. We can safely swap the two functions like this because both of them take the same parameters and have return type void. The Free function correctly frees the resource, so it shouldn't cause any leaks either. The only downside I can see is that if you ever get a geniune ACPIEC error, it won't make it into the logs—but what are the chances? Also, weird driver modifications might wreak havoc with Windows Update, so you might want to undo this hack before installing any service packs.

----- End of mail -----

Thanks a lot, Alex!

Tue, 2007-07-17 13:40 by admin

I immediately tried this and found that it indeed prevents the system log entries and also alleviates the video playing problem somewhat on my computer, but doesn't solve it for me altogether, even though I recently upgraded that laptop from 600 MHz to 1 GHz, but your mileage may vary. If your computer is much faster, the hack may shove you over the hill entirely and allow you to watch videos while at the same time having full ACPI functionality. But like the change even so, because it seems to reduce the ACPIEC burst loads and frees me from the many useless log entries.

I made a minor amendment to the procedure proposed by Alex. I left the old registry entry there and renamed it to "ImagePath ORIGINAL", then created a new ImagePath entry. If you want to do that also, make sure the type of the new value is also REG_EXPAND_SZ, expandable string.

Good luck, and if anyone can hack the driver even more deeply, please let me know.

Thanks a lot, Alex..... ACPIEC.SYS patch

Mon, 2008-05-26 05:43 by jerry46

I tried this patch on my Compal HEL80. Although I only got acpiec errors on boot, usually two before it started communicating.

First, the driver would not start using the renamed driver and changing the image path.

Second, started XP in safe mode, where "windows file protection" is not enabled and turned off the driver.

While in safe mode, replaced the file with one of the same name.

Restarted XP in the normal mode and found that many events during startup were not being logged. So, I replaced the file again with the unpatched version.

Still do not understand while the acpiec driver writes errors to the event viewer when error control is turned off.

Thanks,

Jerry

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.