Device (PCI0)节点的_HIDPNP0A03说明Device (PCI0)的子节点Device (P2P0)的子节点Device (S1F0)是PCI设备--非常重要第0部分Device (PCI0){Name (_HID, EisaId (PNP0A03)) // _HID: Hardware IDName (_CID, EisaId (PNP0A08)) // _CID: Compatible IDName (_BBN, 0x00) // _BBN: BIOS Bus NumberScope (PCI0){dsdt.dsl:5026: Device (EXPL)dsdt.dsl:5099: Device (DMAR)dsdt.dsl:5134: Device (VMGC)dsdt.dsl:6096: Device (P2P0)dsdt.dsl:6306: Device (S1F0)第一部分1: kd kc#00 ACPI!IsPciDeviceWorker01 ACPI!ACPIGetWorkerForString02 ACPI!AsyncCallBack03 ACPI!RunContext04 ACPI!DispatchCtxtQueue05 ACPI!StartTimeSlicePassive06 ACPI!ACPIWorker07 nt!PspSystemThreadStartup08 nt!KiThreadStartup1: kd dvAcpiObject 0x899b0024Status 0n0Result 0x00000000Context 0x898107081: kd dt IS_PCI_DEVICE_STATE 0x89810708ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x899affac _NSObj0x004 Flags : 10x008 Adr : 00x00c Hid : 0x899c1148 *PNP0A030x010 Cid : (null)0x014 IsPciDeviceResult : 0 0x018 RunCompletion : 0n00x01c CompletionHandler : 0xf740d146 void ACPI!IsPciDeviceWorker00x020 CompletionContext : 0x89859ea0 Void0x024 Result : 0x89859eb4 1: kd dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x89859eb4)((ACPI!unsigned char *)0x89859eb4) : 0x89859eb4 : 0x0 [Type: unsigned char *]0x0 [Type: unsigned char]//// Step 0), check to see if this is actually a device type// namespace object.//if (NSGETOBJTYPE(state-AcpiObject) ! OBJTYPE_DEVICE) {*state-Result FALSE;goto IsPciDeviceExit;}#define NSGETOBJTYPE(p) ((p)-ObjData.dwDataType)1: kd dt IS_PCI_DEVICE_STATE 0x89810708ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x899affac _NSObj0x004 Flags : 10x008 Adr : 00x00c Hid : 0x899c1148 *PNP0A030x010 Cid : (null)0x014 IsPciDeviceResult : 0 0x018 RunCompletion : 0n00x01c CompletionHandler : 0xf740d146 void ACPI!IsPciDeviceWorker00x020 CompletionContext : 0x89859ea0 Void0x024 Result : 0x89859eb4 1: kd dx -id 0,0,899a2278 -r1 ((ACPI!_NSObj *)0x899affac)((ACPI!_NSObj *)0x899affac) : 0x899affac [Type: _NSObj *][0x000] list [Type: _List][0x008] pnsParent : 0x899af0f0 [Type: _NSObj *][0x00c] pnsFirstChild : 0x899b0024 [Type: _NSObj *][0x010] dwNameSeg : 0x30494350 [Type: unsigned long][0x014] hOwner : 0x899af330 [Type: void *][0x018] pnsOwnedNext : 0x899aff4c [Type: _NSObj *][0x01c] ObjData [Type: _ObjData][0x030] Context : 0x899c0d58 [Type: void *][0x034] dwRefCount : 0x0 [Type: unsigned long]1: kd dx -id 0,0,899a2278 -r1 (*((ACPI!_ObjData *)0x899affc8))(*((ACPI!_ObjData *)0x899affc8)) [Type: _ObjData][0x000] dwfData : 0x0 [Type: unsigned short][0x002] dwDataType : 0x6 [Type: unsigned short][0x004] dwRefCount : 0x0 [Type: unsigned long][0x004] pdataBase : 0x0 [Type: _ObjData *][0x008] dwDataValue : 0x0 [Type: unsigned long][0x008] uipDataValue : 0x0 [Type: unsigned long][0x008] pnsAlias : 0x0 [Type: _NSObj *][0x008] pdataAlias : 0x0 [Type: _ObjData *][0x008] powner : 0x0 [Type: void *][0x00c] dwDataLen : 0x0 [Type: unsigned long][0x010] pbDataBuff : 0x0 [Type: unsigned char *]//dwDataType valuestypedef enum _OBJTYPES {OBJTYPE_UNKNOWN 0,OBJTYPE_INTDATA,OBJTYPE_STRDATA,OBJTYPE_BUFFDATA,OBJTYPE_PKGDATA,OBJTYPE_FIELDUNIT,OBJTYPE_DEVICE,例子节点PE77的子节点S1F0也是设备对象类型1: kd dx -id 0,0,899a2278 -r1 ((ACPI!_NSObj *)0x89932fa0)((ACPI!_NSObj *)0x89932fa0) : 0x89932fa0 [Type: _NSObj *][0x000] list [Type: _List][0x008] pnsParent : 0x89932afc [Type: _NSObj *][0x00c] pnsFirstChild : 0x89933018 [Type: _NSObj *][0x010] dwNameSeg : 0x30463153 [Type: unsigned long][0x014] hOwner : 0x899af330 [Type: void *][0x018] pnsOwnedNext : 0x89932f5c [Type: _NSObj *][0x01c] ObjData [Type: _ObjData][0x030] Context : 0x89926198 [Type: void *][0x034] dwRefCount : 0x0 [Type: unsigned long]1: kd dx -id 0,0,899a2278 -r1 (*((ACPI!_ObjData *)0x89932fbc))(*((ACPI!_ObjData *)0x89932fbc)) [Type: _ObjData][0x000] dwfData : 0x0 [Type: unsigned short][0x002] dwDataType : 0x6 [Type: unsigned short][0x004] dwRefCount : 0x0 [Type: unsigned long][0x004] pdataBase : 0x0 [Type: _ObjData *][0x008] dwDataValue : 0x0 [Type: unsigned long][0x008] uipDataValue : 0x0 [Type: unsigned long][0x008] pnsAlias : 0x0 [Type: _NSObj *][0x008] pdataAlias : 0x0 [Type: _ObjData *][0x008] powner : 0x0 [Type: void *][0x00c] dwDataLen : 0x0 [Type: unsigned long][0x010] pbDataBuff : 0x0 [Type: unsigned char *]1: kd db 0x89932fa089932fa0 5c 2f 93 89 40 2b 93 89-fc 2a 93 89 18 30 93 89 \/.....*...0..89932fb0 53 31 46 30 30 f3 9a 89-5c 2f 93 89 00 00 06 00 S1F00...\/......89932fc0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................89932fd0 98 61 92 89 00 00 00 00-48 4f 52 47 34 00 00 00 .a......HORG4...89932fe0 00 a0 92 89 00 00 00 00-04 00 00 00 02 00 00 00 ................89932ff0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................89933000 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO89933010 44 00 00 00 00 a0 92 89-80 33 93 89 5c 30 93 89 D........3..\0..1: kd db 0x89932afc89932afc 34 22 93 89 c4 33 93 89-ac ff 9a 89 40 2b 93 89 4...3........89932b0c 50 45 37 37 30 f3 9a 89-b8 2a 93 89 00 00 06 00 PE770....*......89932b1c 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................89932b2c c8 63 92 89 00 00 00 00-48 4e 53 4f 44 00 00 00 .c......HNSOD...89932b3c 00 a0 92 89 a0 2f 93 89-e4 2b 93 89 fc 2a 93 89 ...../......*..89932b4c 00 00 00 00 5f 41 44 52-30 f3 9a 89 fc 2a 93 89 ...._ADR0....*..89932b5c 00 00 01 00 00 00 00 00-07 00 18 00 00 00 00 00 ................89932b6c 00 00 00 00 00 00 00 00-00 00 00 00 48 50 4b 47 ............HPKG例子结束if (state-Hid) {if (strstr(state-Hid, PCI_PNP_ID)) {//// Was PCI.//*state-Result TRUE; 这里说明PCI0是PCI设备。goto IsPciDeviceExit;}ExFreePool(state-Hid);state-Hid NULL;}1: kd dt IS_PCI_DEVICE_STATE 0x89810708ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x899affac _NSObj0x004 Flags : 10x008 Adr : 00x00c Hid : 0x899c1148 *PNP0A030x010 Cid : (null)0x014 IsPciDeviceResult : 0 0x018 RunCompletion : 0n10x01c CompletionHandler : 0xf740d146 void ACPI!IsPciDeviceWorker00x020 CompletionContext : 0x89859ea0 Void0x024 Result : 0x89859eb4 ???1: kd dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x89859eb4)((ACPI!unsigned char *)0x89859eb4) : 0x89859eb4 : 0x1 [Type: unsigned char *]0x1 [Type: unsigned char]IsPciDeviceExit:if (state-IsPciDeviceResult) {//// Record the result.//*state-Result state-IsPciDeviceResult;}if (status STATUS_OBJECT_NAME_NOT_FOUND) {status STATUS_SUCCESS;}if (state-RunCompletion) {state-CompletionHandler(state-AcpiObject,status,NULL,state-CompletionContext);}第二部分回调21: kd kc#00 ACPI!IsPciDeviceWorker01 ACPI!IsPciDeviceWorker02 ACPI!ACPIGetWorkerForString03 ACPI!AsyncCallBack04 ACPI!RunContext05 ACPI!DispatchCtxtQueue06 ACPI!StartTimeSlicePassive07 ACPI!ACPIWorker08 nt!PspSystemThreadStartup09 nt!KiThreadStartup1: kd dvAcpiObject 0x899affacStatus 0n0Result 0x00000000Context 0x89859ea01: kd dt IS_PCI_DEVICE_STATE 0x89859ea0ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x8996cd78 _NSObj0x004 Flags : 0xa9 关键地方4个都检查过了。0x008 Adr : 0x1100000x00c Hid : (null)0x010 Cid : (null)0x014 IsPciDeviceResult : 0x1 关键地方为什么是10x024 Result : 0x89859eb4 ???0x018 RunCompletion : 0n10x01c CompletionHandler : 0xf740d146 void ACPI!IsPciDeviceWorker00x020 CompletionContext : 0x898a8088 Void0x024 Result : 0x898a809c 1: kd dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x898a809c)((ACPI!unsigned char *)0x898a809c) : 0x898a809c : 0x0 [Type: unsigned char *]0x0 [Type: unsigned char]0x89859ea00x014 89859eb41: kd ?0x89859ea00x014Evaluate expression: -1987731788 89859eb4#define PCISUPP_CHECKED_HID 1#define PCISUPP_CHECKED_PCI_DEVICE 2#define PCISUPP_CHECKED_ADR 8#define PCISUPP_IS_PCI_DEVICE 0x10#define PCISUPP_CHECKED_PARENT 0x20#define PCISUPP_CHECKED_PCI_BRIDGE 0x40#define PCISUPP_CHECKED_CID 0x80#define PCISUPP_CHECKED_HID 1 第一个地方#define PCISUPP_CHECKED_ADR 8 第三个地方#define PCISUPP_CHECKED_PARENT 0x20 第四个地方#define PCISUPP_CHECKED_CID 0x80 第二个地方第一个地方//// Step 1), check the _HID.//第二个地方//// Step 2), check the _CID.//第三个地方//// Step 3), check the _ADR.//第四个地方//// If we got here, it has an _ADR. Check to see if the// parent device is a PCI device.//if (!(state-Flags PCISUPP_CHECKED_PARENT)) {上面四个地方都不用检查了。1: kd dt IS_PCI_DEVICE_STATE 0x89859ea0ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x8996cd78 _NSObj0x004 Flags : 0xa90x008 Adr : 0x1100000x00c Hid : (null)0x010 Cid : (null)0x014 IsPciDeviceResult : 0x1 IsPciDeviceExit:if (state-IsPciDeviceResult) { 成立。//// Record the result. 记录结果。//*state-Result state-IsPciDeviceResult;}1: kd dt IS_PCI_DEVICE_STATE 0x89859ea0ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x8996cd78 _NSObj0x004 Flags : 0xa90x008 Adr : 0x1100000x00c Hid : (null)0x010 Cid : (null)0x014 IsPciDeviceResult : 0x1 0x018 RunCompletion : 0n20x01c CompletionHandler : 0xf740d146 void ACPI!IsPciDeviceWorker00x020 CompletionContext : 0x898a8088 Void0x024 Result : 0x898a809c ???1: kd dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x898a809c) 这个地址上一个回调需要的。((ACPI!unsigned char *)0x898a809c) : 0x898a809c : 0x1 [Type: unsigned char *]0x1 [Type: unsigned char]if (state-RunCompletion) {state-CompletionHandler(state-AcpiObject,status,NULL,state-CompletionContext);}第三部分回调三1: kd kc#00 ACPI!IsPciDeviceWorker01 ACPI!IsPciDeviceWorker02 ACPI!IsPciDeviceWorker03 ACPI!ACPIGetWorkerForString04 ACPI!AsyncCallBack05 ACPI!RunContext06 ACPI!DispatchCtxtQueue07 ACPI!StartTimeSlicePassive08 ACPI!ACPIWorker09 nt!PspSystemThreadStartup0a nt!KiThreadStartup1: kd dvAcpiObject 0x8996cd78Status 0n0Result 0x00000000Context 0x898a80881: kd dt IS_PCI_DEVICE_STATE 0x898a8088ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x8996d45c _NSObj0x004 Flags : 0xa9 关键地方4个地方都检查过了。0x008 Adr : 00x00c Hid : (null)0x010 Cid : (null)0x014 IsPciDeviceResult : 0x1 0x898a80880x014898a809c0x018 RunCompletion : 0n10x01c CompletionHandler : 0xf740d44a void ACPI!GetOpRegionScopeWorker00x020 CompletionContext : 0x89906e58 Void0x024 Result : 0x89906e64 1: kd db 0x8996d45c8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 .......x.......8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........8996d47c 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................8996d48c 88 8c 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...8996d49c 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................8996d4ac 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................8996d4bc 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO8996d4cc 44 00 00 00 00 90 96 89-1c d8 96 89 18 d5 96 89 D...............1: kd dx -id 0,0,899a2278 -r1 ((ACPI!_NSObj *)0x8996d45c)((ACPI!_NSObj *)0x8996d45c) : 0x8996d45c [Type: _NSObj *][0x000] list [Type: _List][0x008] pnsParent : 0x8996cd78 [Type: _NSObj *][0x00c] pnsFirstChild : 0x8996d4d4 [Type: _NSObj *][0x010] dwNameSeg : 0x30463153 [Type: unsigned long][0x014] hOwner : 0x899af330 [Type: void *][0x018] pnsOwnedNext : 0x8996d298 [Type: _NSObj *][0x01c] ObjData [Type: _ObjData][0x030] Context : 0x89968c88 [Type: void *][0x034] dwRefCount : 0x0 [Type: unsigned long]1: kd db 0x8996cd788996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......8996cd98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................8996cda8 a0 8e 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...8996cdb8 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................8996cdc8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................8996cdd8 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO8996cde8 44 00 00 00 00 90 96 89-b0 4b 97 89 b4 ce 96 89 D........K......IsPciDeviceExit:if (state-IsPciDeviceResult) {//// Record the result.//*state-Result state-IsPciDeviceResult;}1: kd dt IS_PCI_DEVICE_STATE 0x898a8088ACPI!IS_PCI_DEVICE_STATE0x000 AcpiObject : 0x8996d45c _NSObj0x004 Flags : 0xa90x008 Adr : 00x00c Hid : (null)0x010 Cid : (null)0x014 IsPciDeviceResult : 0x1 0x018 RunCompletion : 0n20x01c CompletionHandler : 0xf740d44a void ACPI!GetOpRegionScopeWorker00x020 CompletionContext : 0x89906e58 Void0x024 Result : 0x89906e64 ???1: kd dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x89906e64)((ACPI!unsigned char *)0x89906e64) : 0x89906e64 : 0x1 [Type: unsigned char *]0x1 [Type: unsigned char] 说明S1F0是PCI设置if (state-RunCompletion) {state-CompletionHandler(state-AcpiObject,status,NULL,state-CompletionContext);}第四部分回调41: kd tBreakpoint 70 hiteax00000001 ebx00000000 ecx89906e64 edx899c4e50 esi898a8088 edi00000103eipf740d44a espf791ac48 ebpf791ac68 iopl0 nv up ei pl nz na po nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000202ACPI!GetOpRegionScopeWorker:f740d44a 55 push ebp1: kd kc#00 ACPI!GetOpRegionScopeWorker01 ACPI!IsPciDeviceWorker02 ACPI!IsPciDeviceWorker03 ACPI!IsPciDeviceWorker04 ACPI!ACPIGetWorkerForString05 ACPI!AsyncCallBack06 ACPI!RunContext07 ACPI!DispatchCtxtQueue08 ACPI!StartTimeSlicePassive09 ACPI!ACPIWorker0a nt!PspSystemThreadStartup0b nt!KiThreadStartup1: kd dvAcpiObject 0x8996d45cStatus 0n0Result 0x00000000Context 0x89906e581: kd dt OP_REGION_SCOPE_STATE 0x89906e58ACPI!OP_REGION_SCOPE_STATE0x000 OpRegion : 0x8996d5b8 _NSObj0x004 Parent : 0x8996d45c _NSObj0x008 Flags : 0x800 #define PCISUPP_COMPLETING_IS_PCI 0x8000x00c IsPciDeviceResult : 0x1 0x010 RunCompletion : 0n00x014 CompletionHandler : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker00x018 CompletionContext : 0x898a8a10 Void0x01c PciObj : 0x8996d5e8 - (null)//// Need to find the PNSOBJ for the PCI device. Do it by// looking up the tree.//while ((state-Parent ! NULL) (state-Parent-pnsParent ! state-Parent)) {if ( !(state-Flags PCISUPP_COMPLETING_IS_PCI) ) {state-Flags | PCISUPP_COMPLETING_IS_PCI;status IsPciDevice(state-Parent,GetOpRegionScopeWorker,(PVOID)state,state-IsPciDeviceResult);#define PCISUPP_COMPLETING_IS_PCI 0x8001: kd dt OP_REGION_SCOPE_STATE 0x89906e58ACPI!OP_REGION_SCOPE_STATE0x000 OpRegion : 0x8996d5b8 _NSObj0x004 Parent : 0x8996d45c _NSObj0x008 Flags : 0x800 检查过了。state-Flags ~PCISUPP_COMPLETING_IS_PCI;if (state-IsPciDeviceResult) {found TRUE;break;}if (found) {*state-PciObj state-Parent; 结果赋值给了state-PciObj就是为了赋值这个。status STATUS_SUCCESS;}1: kd dt OP_REGION_SCOPE_STATE 0x89906e58ACPI!OP_REGION_SCOPE_STATE0x000 OpRegion : 0x8996d5b8 _NSObj0x004 Parent : 0x8996d45c _NSObj0x008 Flags : 0 //state-Flags ~PCISUPP_COMPLETING_IS_PCI;0x00c IsPciDeviceResult : 0x1 0x010 RunCompletion : 0n10x014 CompletionHandler : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker00x018 CompletionContext : 0x898a8a10 Void0x01c PciObj : 0x8996d5e8 - 0x8996d45c _NSObj 原来是NULL下一个回调会用到8996d5e80x8996d5b80x030 8996d5e8GetOpRegionScopeWorkerExit:if (state-RunCompletion) {state-CompletionHandler(state-OpRegion,status,NULL,state-CompletionContext);}第五部分回调51: kd kc#00 ACPI!PciConfigSpaceHandlerWorker01 ACPI!GetOpRegionScopeWorker02 ACPI!IsPciDeviceWorker03 ACPI!IsPciDeviceWorker04 ACPI!IsPciDeviceWorker05 ACPI!ACPIGetWorkerForString06 ACPI!AsyncCallBack07 ACPI!RunContext08 ACPI!DispatchCtxtQueue09 ACPI!StartTimeSlicePassive0a ACPI!ACPIWorker0b nt!PspSystemThreadStartup0c nt!KiThreadStartup1: kd dvAcpiObject 0x8996d5b8CompletionStatus 0n0Result 0x00000000Context 0x898a8a101: kd dt PCI_CONFIG_STATE 0x898a8a10ACPI!PCI_CONFIG_STATE0x000 AccessType : 00x004 OpRegion : 0x8996d5b8 _NSObj0x008 Address : 00x00c Size : 40x010 Data : 0x897e5de0 - 00x014 Context : 00x018 CompletionHandler : 0xf7420914 Void0x01c CompletionContext : 0x897e40ac Void0x020 PciObj : 0x8996d45c _NSObj0x024 ParentObj : (null)0x028 CompletionHandlerType : 00x02c Flags : 0x10000x030 RunCompletion : 0n00x034 Slot : _PCI_SLOT_NUMBER0x038 Bus : 0 0x039 IsPciDeviceResult : 0 1: kd dx -id 0,0,899a2278 -r1 ((ACPI!_NSObj *)0x8996d5b8)((ACPI!_NSObj *)0x8996d5b8) : 0x8996d5b8 [Type: _NSObj *][0x000] list [Type: _List][0x008] pnsParent : 0x8996d45c [Type: _NSObj *][0x00c] pnsFirstChild : 0x0 [Type: _NSObj *][0x010] dwNameSeg : 0x53474552 [Type: unsigned long][0x014] hOwner : 0x899af330 [Type: void *][0x018] pnsOwnedNext : 0x8996d518 [Type: _NSObj *][0x01c] ObjData [Type: _ObjData][0x030] Context : 0x8996d45c [Type: void *] 赋值了。0x8996d5b80x030 8996d5e8[0x034] dwRefCount : 0x0 [Type: unsigned long]#define PCISUPP_GOT_SCOPE 0x1000//// If we have not seen this OpRegion before, we need to// fill in the dwContext with the PNSOBJ of the// PCI device which the OpRegion relates to.//if (!state-OpRegion-Context) { 赋值了。0x8996d5b80x030 8996d5e8if (!(state-Flags PCISUPP_GOT_SCOPE)) { 检查过了。if (!interface) {if (!(state-Flags PCISUPP_GOT_SLOT_INFO)) {state-Flags | PCISUPP_GOT_SLOT_INFO;status GetPciAddress(state-PciObj,PciConfigSpaceHandlerWorker,(PVOID)state,state-Bus,state-Slot);S1F0的PCI地址又是一个大的函数。1: kd dt PCI_CONFIG_STATE 0x898a8a10ACPI!PCI_CONFIG_STATE0x000 AccessType : 00x004 OpRegion : 0x8996d5b8 _NSObj0x008 Address : 00x00c Size : 40x010 Data : 0x897e5de0 - 00x014 Context : 00x018 CompletionHandler : 0xf7420914 Void0x01c CompletionContext : 0x897e40ac Void0x020 PciObj : 0x8996d45c _NSObj0x024 ParentObj : (null)0x028 CompletionHandlerType : 00x02c Flags : 0x11000x030 RunCompletion : 0n10x034 Slot : _PCI_SLOT_NUMBER0x038 Bus : 0 0x039 IsPciDeviceResult : 0 1: kd db 0x8996d45c8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 .......x.......8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........8996d47c 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................8996d48c 88 8c 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...8996d49c 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................8996d4ac 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................8996d4bc 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO8996d4cc 44 00 00 00 00 90 96 89-1c d8 96 89 18 d5 96 89 D...............