告别“被操”人生:解锁真正的自由与掌控
ACPI中的HID硬件ID和PCI配置空间中的设备标识符的关系
分ACPI!ACPIBuildProcessDevicePhaseAdrOrHid函数分析有要么有HID或要么有ADRNTSTATUSACPIBuildProcessDevicePhaseAdrOrHid(IN PACPI_BUILD_REQUEST BuildRequest){nsObject ACPIAmliGetNamedChild(deviceExtension-AcpiObject,PACKED_HID);if (nsObject NULL) {//// Otherwise, there had better be an _ADR present//nsObject ACPIAmliGetNamedChild(deviceExtension-AcpiObject,PACKED_ADR);参考Device (AGP){Name (_ADR, 0x
// _ADR: Address}Device (ISA){Name (_ADR, 0x
// _ADR: AddressDevice (MBRD){Name (_HID, EisaId (PNP0C
) // _HID: Hardware IDName (_UID, 0x1F) // _UID: Unique ID参考结束
分dsdt.dsl:1767: Device (AGP) 0x10000 PCI\VEN_8086DEV_7191SUBSYS_00000000REV_01\361aaa01008 1dsdt.dsl:1772: Device (ISA) 0x70000 PCI\VEN_8086DEV_7110SUBSYS_00000000REV_08\361aaa01038dsdt.dsl:2272: Device (PWR) 0x00070003dsdt.dsl:2284: Device (USB) 0x00070002dsdt.dsl:2294: Device (IDE) 0x00070001 PCI\VEN_8086DEV_7111SUBSYS_197615ADREV_01\361aaa01039dsdt.dsl:5026: Device (EXPL) ACPI\PNP0C02\4dsdt.dsl:5099: Device (DMAR) ACPI\PNP0C02dsdt.dsl:5134: Device (VMGC) ACPI\VMW0001p2p0 110000 PCI\VEN_15ADDEV_0790SUBSYS_00000000REV_02\361aaa01088 2p2p1 120000p2p2 130000p2p3 140000Device (PE
150000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010A8 3Device (PE
160000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010B0 bDevice (PE
170000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010B8 13Device (PE
180000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010C0 1b
分ACPI HID硬件ID和PCI配置空间中的设备标识符是不同但相关的概念它们服务于不同的目的但共同用于设备识别和驱动程序匹配。
ACPI HID硬件ID是ACPI高级配置与电源接口命名空间中用于标识设备的字符串由固件如BIOS/UEFI定义。
它遵循ABC[D]xxxx格式其中ABC[D]是供应商IDxxxx是设备ID。
对于PCI主桥其ACPI HID通常是PNP0A03或PNP0A08这告诉操作系统这是一个PCI根总线控制器。
ACPI HID用于操作系统在ACPI命名空间中枚举设备并加载相应的驱动程序。
PCI配置空间中的设备标识符是PCI本地总线规范定义的硬件寄存器位于每个PCI设备的配置空间头部。
它主要包括Vendor ID供应商ID和Device ID设备ID这两个16位的值共同唯一标识一个PCI设备的型号和制造商。
这些信息是PCI设备固有的由硬件厂商在设计芯片时写入。
关键区别与联系层级不同ACPI HID是平台固件层面的抽象标识用于操作系统发现和管理硬件资源PCI Vendor ID/Device ID是总线协议层面的物理标识用于PCI子系统内部识别设备。
用途不同ACPI HID如PNP0A03让操作系统知道“这是一个PCI根桥”从而为其分配资源并枚举其下的PCI总线PCI Vendor ID/Device ID则让操作系统知道“这个PCI设备是一个Intel 82574L网卡”或“一个NVIDIA GeForce显卡”从而加载具体的设备驱动程序。
关联性一个PCI设备如网卡、显卡会同时拥有PCI配置空间中的Vendor ID/Device ID以及一个ACPI HID通常是PNP0A03或PNP0A08如果它是根桥对于普通PCI设备其ACPI标识可能通过其他方式如_CID或设备树关联。
操作系统会先通过ACPI HID发现PCI根桥然后通过扫描PCI总线读取各个设备的Vendor ID/Device ID来识别它们。
简而言之ACPI HID告诉你“设备在系统中的角色”如PCI根桥而PCI配置空间的Vendor ID/Device ID告诉你“设备的具体型号”。
它们是操作系统在不同层级识别硬件的两个关键信息。
分1: kd x ACPI!ACPIBuild*dispatchf74380d4 ACPI!AcpiBuildPowerResourceDispatch function *[5]f7438104 ACPI!AcpiBuildThermalZoneDispatch function *[4]f74380e8 ACPI!AcpiBuildRunMethodDispatch function *[7]f7438008 ACPI!AcpiBuildDeviceDispatch function *[23]f74380c4 ACPI!AcpiBuildOperationRegionDispatch function *[4]1: kd dx -r1 (*((ACPI!long (*(*)[23])(_ACPI_BUILD_REQUEST *))0xf
)(*((ACPI!long (*(*)[23])(_ACPI_BUILD_REQUEST *))0xf
) [Type: long (* [23])(_ACPI_BUILD_REQUEST *)][0] : 0xf73fb840 [Type: long (*)(_ACPI_BUILD_REQUEST *)][1] : 0x0 [Type: long (*)(_ACPI_BUILD_REQUEST *)][2] : 0xf73fce98 [Type: long (*)(_ACPI_BUILD_REQUEST *)][3] : 0xf73fb118 [Type: long (*)(_ACPI_BUILD_REQUEST *)][4] : 0xf73fb09e [Type: long (*)(_ACPI_BUILD_REQUEST *)][5] : 0xf73fb40c [Type: long (*)(_ACPI_BUILD_REQUEST *)][6] : 0xf73fb7a0 [Type: long (*)(_ACPI_BUILD_REQUEST *)][7] : 0xf73fb246 [Type: long (*)(_ACPI_BUILD_REQUEST *)][8] : 0xf73fb72e [Type: long (*)(_ACPI_BUILD_REQUEST *)][9] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][10] : 0xf73fddf2 [Type: long (*)(_ACPI_BUILD_REQUEST *)][11] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][12] : 0xf73fd18a [Type: long (*)(_ACPI_BUILD_REQUEST *)][13] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][14] : 0xf73fcf04 [Type: long (*)(_ACPI_BUILD_REQUEST *)][15] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][16] : 0xf73fcfca [Type: long (*)(_ACPI_BUILD_REQUEST *)][17] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][18] : 0xf73fd09e [Type: long (*)(_ACPI_BUILD_REQUEST *)][19] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][20] : 0xf73fb36a [Type: long (*)(_ACPI_BUILD_REQUEST *)][21] : 0xf73faf0a [Type: long (*)(_ACPI_BUILD_REQUEST *)][22] : 0xf73fb57c [Type: long (*)(_ACPI_BUILD_REQUEST *)]1: kd dds 0xf7438008f7438008 f73fb840 ACPI!ACPIBuildProcessGenericComplete [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4654]f743800c 00000000f7438010 f73fce98 ACPI!ACPIBuildProcessDeviceFailure [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2507]f7438014 f73fb118 ACPI!ACPIBuildProcessDevicePhaseAdrOrHid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2844]f7438018 f73fb09e ACPI!ACPIBuildProcessDevicePhaseAdr [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2754]f743801c f73fb40c ACPI!ACPIBuildProcessDevicePhaseHid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3434]f7438020 f73fb7a0 ACPI!ACPIBuildProcessDevicePhaseUid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4547]f7438024 f73fb246 ACPI!ACPIBuildProcessDevicePhaseCid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3018]f7438028 f73fb72e ACPI!ACPIBuildProcessDevicePhaseSta [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4479]f743802c f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438030 f73fddf2 ACPI!ACPIBuildProcessDevicePhaseEjd [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3247]f7438034 f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438038 f73fd18a ACPI!ACPIBuildProcessDevicePhasePrw [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3935]f743803c f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438040 f73fcf04 ACPI!ACPIBuildProcessDevicePhasePr0 [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3572]f7438044 f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438048 f73fcfca ACPI!ACPIBuildProcessDevicePhasePr1 [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3684]f743804c f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438050 f73fd09e ACPI!ACPIBuildProcessDevicePhasePr2 [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3803]f7438054 f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438058 f73fb36a ACPI!ACPIBuildProcessDevicePhaseCrs [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3147]f743805c f73faf0a ACPI!ACPIBuildProcessDeviceGenericEval [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2562]f7438060 f73fb57c ACPI!ACPIBuildProcessDevicePhasePsc [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4228]f7438064 00000000f7438068 00000000f743806c 00000000
小鸡入水蜜桃电视剧免费最新更新时-小鸡入水蜜桃电视剧免费最新更新时应用