Device (P2P0)的子节点Device (S4F0)存在VEN_15AD&DEV_0770对应ServiceName is "usbehci"
Device (S4F0)
{
Name (_ADR, 0x00030000) // _ADR: Address
Name (_SUN, 0x43) // _SUN: Slot User Number
OperationRegion (REGS, PCI_Config, 0x00, 0x04)
Field (REGS, DWordAcc, NoLock, Preserve)
{
ID, 32
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (BSTA (ID))
}
1: kd> g
Breakpoint 54 hit
eax=00000000 ebx=f743a948 ecx=00000000 edx=00000000 esi=8985e000 edi=00008004
eip=f741d900 esp=f791ad18 ebp=f791ad34 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!RunContext+0x1f0:
f741d900 e8af1e0000 call ACPI!AsyncCallBack (f741f7b4)
1: kd> g
Breakpoint 63 hit
eax=f740ceea ebx=00000000 ecx=00000001 edx=00002707 esi=89859ed0 edi=89859efc
eip=f740ceea esp=f791acb4 ebp=f791acd8 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!GetPciAddressWorker:
f740ceea 55 push ebp
1: kd> g
Breakpoint 63 hit
eax=00000000 ebx=00000000 ecx=00002000 edx=00002707 esi=89810ab8 edi=00000000
eip=f740ceea esp=f791ac4c ebp=f791acb0 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!GetPciAddressWorker:
f740ceea 55 push ebp
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=00000000 ecx=8996cd78 edx=00002707 esi=899c5478 edi=00000103
eip=804f25ee esp=f791abdc ebp=f791ac48 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
hal!HalGetBusDataByOffset:
804f25ee 55 push ebp
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 0
SlotNumber = 0x11
Buffer = 0xf791ac04
Offset = 0
Length = 0x40
bus = struct _BUS_HANDLER
1: kd> g
Breakpoint 48 hit
eax=898a8cb8 ebx=00000000 ecx=00000002 edx=00000000 esi=899c5478 edi=00000000
eip=f740d62c esp=f791abe4 ebp=f791ac48 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!PciConfigSpaceHandlerWorker:
f740d62c 55 push ebp
1: kd> g
Breakpoint 51 hit
eax=00000002 ebx=898a8c80 ecx=00000100 edx=8996e138 esi=00000000 edi=00000000
eip=804f25ee esp=f791ab74 ebp=f791abe0 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
hal!HalGetBusDataByOffset:
804f25ee 55 push ebp
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 2
SlotNumber = 3
Buffer = 0x897ebde0
Offset = 0
Length = 4
bus = struct _BUS_HANDLER
1: kd> gu
Breakpoint 53 hit
eax=00000004 ebx=898a8c80 ecx=00000000 edx=00000000 esi=00000000 edi=00000000
eip=f740d8c7 esp=f791ab90 ebp=f791abe0 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!PciConfigSpaceHandlerWorker+0x29b:
f740d8c7 8bf0 mov esi,eax
1: kd> db 0x897ebde0
897ebde0 ad 15 70 07 00 00 00 00-00 00 00 00 20 00 00 00 ..p......... ...
897ebdf0 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
897ebe00 71 9b 41 f7 dc e1 96 89-1c a1 7e 89 43 41 4c 4c q.A.......~.CALL
897ebe10 cc 00 00 00 01 00 00 00-09 77 42 f7 00 00 00 00 .........wB.....
897ebe20 00 00 00 00 74 cf 96 89-01 00 00 00 01 00 00 00 ....t...........
897ebe30 1c a1 7e 89 00 00 00 00-00 00 00 00 00 00 00 00 ..~.............
897ebe40 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
897ebe50 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1: kd> dd 0x897ebde0
897ebde0 077015ad 00000000 00000000 00000020
897ebdf0 00000003 55464341 00000018 00010003
897ebe00 f7419b71 8996e1dc 897ea11c 4c4c4143
897ebe10 000000cc 00000001 f7427709 00000000
897ebe20 00000000 8996cf74 00000001 00000001
897ebe30 897ea11c 00000000 00000000 00000000
897ebe40 00000000 00000000 00000000 00000000
897ebe50 00000000 00000000 00000000 00000000
DevNode 0x89d02c90 for PDO 0x899feae0
InstancePath is "PCI\VEN_15AD&DEV_0770&SUBSYS_077015AD&REV_00\4&47b7341&0&1888"
ServiceName is "usbehci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89d02008 for PDO 0x8988a678
InstancePath is "PCI\VEN_15AD&DEV_0774&SUBSYS_197615AD&REV_00\4&47b7341&0&0088"
ServiceName is "usbuhci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
目前主流的控制器类型有三种:
- xHCI :支持USB 3.x 和向下兼容 2.0/1.1,现代平台标配
- EHCI :专用于USB 2.0高速传输
- OHCI/UHCI :老旧架构,基本淘汰
每种控制器都有对应的内核级驱动,例如:
- usbxhci.sys → xHCI 控制器
- usbehci.sys → EHCI 控制器
- usbuhci.sys / usbohci.sys