Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I call ACPI control methods from C++ or C# on Windows?

Tags:

acpi

I'm getting tired of waiting for HP to fix the switchable graphics driver for my laptop, but I think I can switch GPUs myself by calling ACPI methods. The switching works using vga_switcheroo in Linux, which is open source, so I know what methods I need to call, but not how to call them.

The two methods I need to call are in the SSDT namespace, if that matters, and I also need to pass integer arguments.

like image 969
phpscriptcoder Avatar asked Oct 16 '11 00:10

phpscriptcoder


1 Answers

Some links on similar problems (For example) say that this is possible only from kernel-mode driver under Windows. So to accomplish this I can think only of the following options:

  1. Writing entire videodriver by yourself - I doubt you will go this way...

  2. Finding documentation on or reverse-engineering existing videodriver for your GPU and issuing necessary commands via IOCTLs using function DeviceIoControl (MSDN). Also not very reliable - existing driver might not contain necessary functions/IOCTLs - but I think it will be much easier than the first option.

like image 59
Sergey Kudriavtsev Avatar answered Oct 26 '22 02:10

Sergey Kudriavtsev