XP Interrupt Handling tweak

tcsenter

Lifer
Sep 7, 2001
18,933
567
126
I was skimming through a Microsoft PPT presentation that I found "on the net", and encountered something that caught my eye. I was not at my own computer so I didn't bother to save the PPT presentation, just copied the text that interested me:

For Windows XP SP2, a mechanism has been added that improves performance in the ACPI interrupt handling code. Windows XP had a problem whereby if other devices were sharing the ACPI interrupt, performance degradation could occur. This happened due to a delay by the ACPI driver in passing the interrupt to the proper handler. This feature is not ?on? by default in Windows XP SP2 because of backward compatibility concerns. This feature will be ?on? by default in Longhorn. To enable this feature on Windows XP SP2, open:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ACPI\Parameters

Edit or add a DWORD value named ?Attributes?

Bitwise OR 0x00000100 into the ?Attributes? value

Restart the system

I've been wanting to test this, but not being a programmer, I haven't a clue what that last part means; Bitwise OR 0x00000100?

I've looked for more information about this tweak but turned-up nothing.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
It basically means to take whatever value is in Attributes, and leave ALL digits alone, except for the digits that have a 1 in it, and make that one a 1.

Basically what you have there is a byte of data, 8 bits represented by the 0's and 1's. So you are going to each individual bit in the first value(current Attributes value)and the corresponding bit in your second value(00000100) and if either of them are a 1 then your output bit is a 1.

So say you had 0x01011001 as your Attributes value when you open up regedit, your final value would be 0x01011101
 

tcsenter

Lifer
Sep 7, 2001
18,933
567
126
lol! Well that is not what I guessed it might be. Thanks for the explanation. I think I understand? e.g.

If original value is 01010010

Then new value would be 01010110 ?

So then its possible for the original value to be unchanged? Thanks!
 

ViRGE

Elite Member, Moderator Emeritus
Oct 9, 1999
31,516
167
106
Yes. If the original value is 1, then the OR of that would still be 1.
 

tcsenter

Lifer
Sep 7, 2001
18,933
567
126
I created a DWORD value named Attributes, and by default the following is entered:

0x00000000

Can I just key in 100 as a hex value (256 decimal)? Because when I try to edit using "Modify Binary Data", it gives me weird results.
 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
Originally posted by: tcsenter
I created a DWORD value named Attributes, and by default the following is entered:

0x00000000

Can I just key in 100 as a hex value (256 decimal)? Because when I try to edit using "Modify Binary Data", it gives me weird results.

Yeah, just punch in 256 decimal.

Not sure where you are getting the "modify binary data" from. Did you create the value as a DWORD?







 

tcsenter

Lifer
Sep 7, 2001
18,933
567
126
Right click on the Attributes value. The context menu options are Modify and Modify Binary Data.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
The parameters key isn't present under HKLM\SYSTEM\CurrentControlSet\Services\ACPI on my XP/SP2 install. /shrug.
 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
Originally posted by: tcsenter
Right click on the Attributes value. The context menu options are Modify and Modify Binary Data.

Yep, that'd be a pain in the butt. Just double click.
 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
the parameters key listed under services is only read by the service itself (service control manager ignores anything in parameters). Basically you can add any gibberish you want in there and it won't cause a problem. Services will be hard coded to retrieve specific values and erroneous ones will be harmlessly ignored.


BTW OP: Tread carefully screwing with the ACPI service. You can get yourself unbootable real fast or cause some truly frustrating hardware issues.

Be sure to create a system restore point before you begin. I would also recommend sitting at the Ctrl-alt-del screen for about 5 min to make sure everything fires up ok before you login and overwrite the lastknown good (you're fooling around under a control set so lastknowngood will be applicable)