Can we tell in WinDbg which device is mapped to an address?

Say, if I have a virtual address (or its physical address), is there a way to tell what device that address is mapped to?

With difficulty. Once you have a physical address, you can run through the list of PCIe devices and try to match it up. Windbg has commands to query the PCI bus.

Most virtual addresses map to memory, of course.

It's not just PCIe devices though, is it?

In the typical modern PC, it's virtually always going to be a PCIe device. If you're working in the embedded world, then it's the wild wild west.

What Tim said... and modulo legacy-type stuff on the LPC bus.

!arbiter 2 shows which memory ranges are assigned to each device:

!arbiter (WinDbg) - Windows drivers | Microsoft Learn

Thanks. I'm getting a bunch of errors if I run !arbiter 2:

Could not read arbiter entry {addr} from devnode {addr}

Which version of the OS and debugger? What errors?

1: kd> vertarget
Windows 10 Kernel Version 22621 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Edition build lab: 22621.1.amd64fre.ni_release.220506-1250
Kernel base = 0xfffff805`0e600000 PsLoadedModuleList = 0xfffff805`0f213130
Debug session time: Wed Jul 24 15:56:14.551 2024 (UTC - 4:00)
System Uptime: 0 days 3:53:07.246
1: kd> !arbiter 2

DEVNODE ffffa40bfcf2dab0 (HTREE\ROOT\0)
  Memory Arbiter "RootMemory" at fffff8050f25c240
    Allocated ranges:
      0000000000000000 - 0000000000000fff       00000000 <Not on bus>
      00000000000a0000 - 00000000000bffff S     ffffa40bfe0e3d90  (pci)
      00000000000c4000 - 00000000000c7fff S     ffffa40bfe0e3d90  (pci)
      00000000000c8000 - 00000000000cbfff S     ffffa40bfe0e3d90  (pci)
      00000000000d4000 - 00000000000d7fff S     ffffa40bfe0e3d90  (pci)
      00000000000d8000 - 00000000000dbfff S     ffffa40bfe0e3d90  (pci)
      00000000000e4000 - 00000000000e7fff S     ffffa40bfe0e3d90  (pci)
      00000000000e8000 - 00000000000ebfff S     ffffa40bfe0e3d90  (pci)
      00000000000ec000 - 00000000000effff S     ffffa40bfe0e3d90  (pci)
      00000000c0000000 - 00000000efffffff    
        00000000c0000000 - 00000000efffffff SC    ffffa40bfe0e3d90  (pci)
        00000000e0000000 - 00000000e7ffffff  CB   00000000 <Not on bus>
      00000000f0000000 - 00000000fa1fffff S     ffffa40bfe0e3d90  (pci)
      00000000fa200000 - 00000000febfffff S     ffffa40bfe0e3d90  (pci)
      00000000fec00000 - 00000000fec003ff   B   ffffa40bfcf4fdc0 
      00000000fec10000 - 00000000fed3ffff    
        00000000fec10000 - 00000000fed3ffff SC    ffffa40bfe0e3d90  (pci)
        00000000fed00000 - 00000000fed003ff  CB   ffffa40bfcf4fdc0 
      00000000fed40000 - 00000000fed44fff       ffffa40bfdbe2d90  (TPM)
      00000000fed45000 - 00000000fedfffff S     ffffa40bfe0e3d90  (pci)
      00000000fee00000 - 00000000fee003ff   B   ffffa40bfcf4fdc0 
      00000000fef00000 - 00000000ffdfffff S     ffffa40bfe0e3d90  (pci)
      0000200000000000 - ffffffffffffffff       00000000 <Not on bus>
    Possible allocation:
      < none >

      DEVNODE ffffa40bfce73730 (ACPI\PNP0A03\2&daba3ff&0)
        Memory Arbiter "PCI Memory (b=0)" at ffffa40bfd5f0190
          Allocated ranges:
            0000000000000000 - 000000000009ffff       00000000 <Not on bus>
            00000000000a0000 - 00000000000bffff S     ffffa40bff3d7360  (vm3dmp_loader)
            00000000000c0000 - 00000000000c3fff       00000000 <Not on bus>
            00000000000cc000 - 00000000000d3fff       00000000 <Not on bus>
            00000000000dc000 - 00000000000e3fff       00000000 <Not on bus>
            00000000000f0000 - 00000000bfffffff       00000000 <Not on bus>
            00000000e0000000 - 00000000e7ffffff    
              00000000e0000000 - 00000000e7ffffff  CB   00000000 <Not on bus>
              00000000e0000000 - 00000000e7ffffff  CB   ffffa40bfe6eed70 
            00000000f0000000 - 00000000f7ffffff       ffffa40bff3d7360  (vm3dmp_loader)
            00000000f8000000 - 00000000f84fffff       ffffa40bfe4f0360  (pci)
            00000000f8500000 - 00000000f85fffff       ffffa40bfe7ca060  (pci)
            00000000f8600000 - 00000000f86fffff       ffffa40bff3f3060  (pci)
            00000000f8700000 - 00000000f87fffff       ffffa40bfe2f3060  (pci)
            00000000f8800000 - 00000000f88fffff       ffffa40bfe4f3060  (pci)
            00000000f8900000 - 00000000f89fffff       ffffa40bfefed060  (pci)
            00000000f8a00000 - 00000000f8afffff       ffffa40bff3eb060  (pci)
            00000000f8b00000 - 00000000f8bfffff       ffffa40bff3d8060  (pci)
            00000000f8c00000 - 00000000f8cfffff       ffffa40bfe3c5060  (pci)
            00000000f8d00000 - 00000000f8dfffff       ffffa40bfe2ea060  (pci)
            00000000f8e00000 - 00000000f8efffff       ffffa40bfefd0060  (pci)
            00000000f8f00000 - 00000000f8ffffff       ffffa40bfefce060  (pci)
            00000000f9000000 - 00000000f90fffff       ffffa40bfefcc060  (pci)
            00000000f9100000 - 00000000f91fffff       ffffa40bfe7c9360  (pci)
            00000000f9200000 - 00000000f92fffff       ffffa40bfe9cf360  (pci)
            00000000f9300000 - 00000000f93fffff       ffffa40bfe9cb360  (pci)
            00000000f9400000 - 00000000f94fffff       ffffa40bfe3ce360  (pci)
            00000000f9500000 - 00000000f95fffff       ffffa40bfe3ca360  (pci)
            00000000f9600000 - 00000000f96fffff       ffffa40bfefec360  (pci)
            00000000f9700000 - 00000000f97fffff       ffffa40bfefe8360  (pci)
            00000000f9800000 - 00000000f98fffff       ffffa40bfe4ec360  (pci)
            00000000f9900000 - 00000000f99fffff       ffffa40bfe4e8360  (pci)
            00000000f9a00000 - 00000000f9afffff       ffffa40bfe5db360  (pci)
            00000000f9b00000 - 00000000f9bfffff       ffffa40bff3e1360  (pci)
            00000000f9c00000 - 00000000f9cfffff       ffffa40bff3dd360  (pci)
            00000000f9d00000 - 00000000f9dfffff       ffffa40bff3f2360  (pci)
            00000000f9e00000 - 00000000f9efffff       ffffa40bff3ee360  (pci)
            00000000f9f00000 - 00000000f9ffffff       ffffa40bff3e8360  (pci)
            00000000fa000000 - 00000000fa0fffff       ffffa40bfe2f2360  (pci)
            00000000fa100000 - 00000000fa1fffff       ffffa40bfeff2360  (pci)
            00000000fb800000 - 00000000fbffffff       ffffa40bff3d7360  (vm3dmp_loader)
            00000000fc000000 - 00000000fc9fffff       ffffa40bfe4f0360  (pci)
            00000000fcb00000 - 00000000fcbfffff       ffffa40bfe7ca060  (pci)
            00000000fcc00000 - 00000000fccfffff       ffffa40bff3f3060  (pci)
            00000000fcd00000 - 00000000fcdfffff       ffffa40bfe2f3060  (pci)
            00000000fce00000 - 00000000fcefffff       ffffa40bfe4f3060  (pci)
            00000000fcf00000 - 00000000fcffffff       ffffa40bfefed060  (pci)
            00000000fd000000 - 00000000fd0fffff       ffffa40bff3eb060  (pci)
            00000000fd100000 - 00000000fd1fffff       ffffa40bff3d8060  (pci)
            00000000fd200000 - 00000000fd2fffff       ffffa40bfe3c5060  (pci)
            00000000fd300000 - 00000000fd3fffff       ffffa40bfe2ea060  (pci)
            00000000fd400000 - 00000000fd4fffff       ffffa40bfefd0060  (pci)
            00000000fd500000 - 00000000fd5fffff       ffffa40bfefce060  (pci)
            00000000fd600000 - 00000000fd6fffff       ffffa40bfefcc060  (pci)
            00000000fd700000 - 00000000fd7fffff       ffffa40bfe7c9360  (pci)
            00000000fd800000 - 00000000fd8fffff       ffffa40bfe9cf360  (pci)
            00000000fd900000 - 00000000fd9fffff       ffffa40bfe9cb360  (pci)
            00000000fda00000 - 00000000fdafffff       ffffa40bfe9c7360  (pci)
            00000000fdb00000 - 00000000fdbfffff       ffffa40bfe3ce360  (pci)
            00000000fdc00000 - 00000000fdcfffff       ffffa40bfe3ca360  (pci)
            00000000fdd00000 - 00000000fddfffff       ffffa40bfefec360  (pci)
            00000000fde00000 - 00000000fdefffff       ffffa40bfefe8360  (pci)
            00000000fdf00000 - 00000000fdffffff       ffffa40bfe4ec360  (pci)
            00000000fe000000 - 00000000fe0fffff       ffffa40bfe4e8360  (pci)
            00000000fe100000 - 00000000fe1fffff       ffffa40bfe5db360  (pci)
            00000000fe200000 - 00000000fe2fffff       ffffa40bfe5d7360  (pci)
            00000000fe300000 - 00000000fe3fffff       ffffa40bff3e1360  (pci)
            00000000fe400000 - 00000000fe4fffff       ffffa40bff3dd360  (pci)
            00000000fe500000 - 00000000fe5fffff       ffffa40bff3f2360  (pci)
            00000000fe600000 - 00000000fe6fffff       ffffa40bff3ee360  (pci)
            00000000fe700000 - 00000000fe7fffff       ffffa40bff3e8360  (pci)
            00000000fe800000 - 00000000fe8fffff       ffffa40bfe2f2360  (pci)
            00000000fe900000 - 00000000fe9fffff       ffffa40bfeff2360  (pci)
            00000000fea00000 - 00000000feafffff       ffffa40bfe4f2360  (pci)
            00000000fec00000 - 00000000fec0ffff       00000000 <Not on bus>
            00000000fed00000 - 00000000fed003ff   B   ffffa40bfdae8d50 
            00000000fed40000 - 00000000fed44fff       00000000 <Not on bus>
            00000000fee00000 - 00000000feefffff       00000000 <Not on bus>
            00000000ffbc0000 - 00000000ffbfffff       ffffa40bff3d5360  (vmci)
            00000000ffc00000 - 00000000ffdfffff   B   ffffa40bfe6eed70 
            00000000ffe00000 - ffffffffffffffff    
              00000000ffe00000 - ffffffffffffffff  C    00000000 <Not on bus>
              0000200000000000 - ffffffffffffffff  C    00000000 <Not on bus>
          Possible allocation:
            < none >

        DEVNODE ffffa40bff3eaae0 (PCI\VEN_15AD&DEV_0790&SUBSYS_079015AD&REV_02\3&61aaa01&0&88)
          Memory Arbiter "PCI Memory (b=2)" at ffffa40bfd5ef1c0
            Allocated ranges:
              0000000000000000 - 00000000f7ffffff    
                0000000000000000 - 00000000f7ffffff  C    00000000 <Not on bus>
                00000000e0000000 - 00000000e7ffffff  CB   00000000 <Not on bus>
              00000000f8500000 - 00000000fbffffff       00000000 <Not on bus>
              00000000fc010000 - 00000000fc013fff       ffffa40bfe7de060  (HDAudBus)
              00000000fc015000 - 00000000fc015fff       ffffa40bfe7df060  (usbehci)
              00000000fc9ff000 - 00000000fc9fffff       ffffa40bfe7e0060  (storahci)
              00000000fca00000 - ffffffffffffffff       00000000 <Not on bus>
            Possible allocation:
              < none >

        DEVNODE ffffa40bff3f0ae0 (PCI\VEN_15AD&DEV_07A0&SUBSYS_07A015AD&REV_01\3&61aaa01&0&A8)
          Memory Arbiter "PCI Memory (b=3)" at ffffa40bfd5ef330
            Allocated ranges:
              0000000000000000 - 00000000fe9fffff    
                0000000000000000 - 00000000fe9fffff  C    00000000 <Not on bus>
                00000000e0000000 - 00000000e7ffffff  CB   00000000 <Not on bus>
              00000000feabc000 - 00000000feabffff       ffffa40bfe3d9120  (e1i68x64)
              00000000feac0000 - 00000000feadffff       ffffa40bfe3d9120  (e1i68x64)
              00000000feae0000 - 00000000feafffff       ffffa40bfe3d9120  (e1i68x64)
              00000000feb00000 - ffffffffffffffff       00000000 <Not on bus>
            Possible allocation:
              < none >

        DEVNODE ffffa40bfefeaae0 (PCI\VEN_15AD&DEV_07A0&SUBSYS_07A015AD&REV_01\3&61aaa01&0&B0)
          Memory Arbiter "PCI Memory (b=b)" at ffffa40bfe3f5a60
            Allocated ranges:
              0000000000000000 - 00000000fe1fffff    
                0000000000000000 - 00000000fe1fffff  C    00000000 <Not on bus>
                00000000e0000000 - 00000000e7ffffff  CB   00000000 <Not on bus>
              00000000fe200000 - 00000000fe21ffff       ffffa40bfe3ee120  (USBXHCI)
              00000000fe300000 - ffffffffffffffff       00000000 <Not on bus>
            Possible allocation:
              < none >

        DEVNODE ffffa40bfefcca20 (PCI\VEN_15AD&DEV_07A0&SUBSYS_07A015AD&REV_01\3&61aaa01&0&B8)
          Memory Arbiter "PCI Memory (b=13)" at ffffa40bfe6fa300
            Allocated ranges:
              0000000000000000 - 00000000fd9fffff    
                0000000000000000 - 00000000fd9fffff  C    00000000 <Not on bus>
                00000000e0000000 - 00000000e7ffffff  CB   00000000 <Not on bus>
              00000000fda00000 - 00000000fda03fff       ffffa40bfe4e2060  (stornvme)
              00000000fdb00000 - ffffffffffffffff       00000000 <Not on bus>
            Possible allocation:
              < none >

OS v.26100 arm64
DbgEng v.10.0.27553.104