ColinXu-5949 avatar image
0 Votes"
ColinXu-5949 asked ColinXu-5949 commented

How to access ACPI DMAR table?

The purpose is to investigate how to setup DMA remapping via r/w DMAR table in Hyper-V OFF mode.

There seems no way to access ACPI DMAR table directly via some DDI in kernel mode.

The user mode APIs to query similar information is to use EnumSystemFirmwareTables() and GetSystemFirmwareTable().
The kernel mode API may be using NtQuerySystemInformation() with an undocumented enum SystemFirmwareTableInformation. The common way is to send IOCTL_ACPI_xxx down to the stack, however those IOCTLs obviously can't meed the requirement.

So looks like the only way is to parse the SystemFirmwareTables locally according to ACPI spec and IOMMU/DMAR defines, and program as I wish? Any better way to archive the goal?

· 2
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.


According to your description, seems the issue is more related to hardward wdk, since Windows 10 virtualization forum is mainly about Hyper V role on Windows 10, wdk is out of windows-10-virtualization forum scope, so, I will remove the tag windows-10-virtualization for you, thanks for your understanding!

Best Regards,

0 Votes 0 ·

Although these are WDK related, only virtualization will use ACPI DMAR and IOMMU domain. Virtualization experts may share more comments on the question. That's the reason I add the virtualization tag.
I'll keep current status for a while and see if need add the tag back.
Thanks for your quick response.

0 Votes 0 ·

0 Answers