2

GetSystemFirmwareTable can be used to retrieve an ACPI system table. The second argument to this function is the firmware table ID, e.g. UEFI or FACP. However, sometimes there are multiple ACPI tables with a given ID, like UEFI.

Using RWEverything to list ACPI tables, I see many SSDT tables for example(screenshot). And I was told there could be multiple UEFI tables on the system I am creating software for. However the GetSystemFirmwareTable function has a remark that:

For ACPI, if the system contains multiple tables with the same name, they are all enumerated with EnumSystemFirmwareTables. However, GetSystemFirmwareTable retrieves only the first table in the list with this name.

So it seems if there's multiple tables with the same ID(name) I can only get the first one with this function. As far as the EnumSystemFirmwareTables function mentioned, that seems to just list the IDs of the ACPI tables on the system, but not any of the data in the tables.

So how do I access a specific ACPI table in Windows when there's multiple tables of that ID/name? Any other function or method you can point me to is helpful.

Aaron
  • 31
  • 3
  • I'm not an expert in WinAPI, but shouldn't Windows parse tables and provide you an ACPI namespace inside the running system? In that case it's not clear why do you need a **table** rather than **part of the namespace** to retrieve? – 0andriy Aug 20 '21 at 08:06
  • @0andriy I'm obviously not an expert either; I'm not familiar enough with this to know how exactly to utilize the namespace and what that offers. I suppose I can start researching that, but if you recommend any specific resources regarding using the Windows system namespace/ACPI namespace, with the goal of accessing ACPI data, I'd be happy to read it. – Aaron Aug 23 '21 at 19:41
  • Read docs.microsoft.org I suppose. I clicked to https://learn.microsoft.com/en-us/windows-hardware/drivers/acpi/enumerating-child-devices-and-control-methods which looks relevant to what I have told, but you need to read much more to understand all these concepts. – 0andriy Aug 23 '21 at 20:34

0 Answers0