Да, именно! Я уже нашел)
Если кому то интересно, делается это так:
ULONG BusNumber, propertyAddress, length;
USHORT FunctionNumber, DeviceNumber, DeviceID;
PCI_COMMON_CONFIG PCIDeviceConfig;
IoGetDeviceProperty(
PhysicalDeviceObject,
DevicePropertyBusNumber,
sizeof(ULONG),
(PVOID)&BusNumber,
&length
);
IoGetDeviceProperty(
PhysicalDeviceObject,
DevicePropertyAddress,
sizeof(ULONG),
(PVOID)&propertyAddress,
&length
);
FunctionNumber = (USHORT)((propertyAddress) & 0x0000FFFF);
DeviceNumber = (USHORT)(((propertyAddress) >> 16) & 0x0000FFFF);
HalGetBusData(
PCIConfiguration,
BusNumber,
DeviceNumber | (FunctionNumber << 5),
&PCIDeviceConfig,
sizeof(PCIDeviceConfig)
);
DeviceID = PCIDeviceConfig.DeviceID;