Device (P2P0)的子节点Device (S2F0)存在对应的PCI-VEN_1022&DEV_2000是虚拟机网卡
第二个:S2F0
1: kd> g
Breakpoint 63 hit
eax=f740ceea ebx=00000000 ecx=00000001 edx=00002707 esi=898a8270 edi=898a829c
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> kc
00 ACPI!GetPciAddressWorker
01 ACPI!ACPIGetWorkerForInteger
02 ACPI!AsyncCallBack
03 ACPI!RunContext
04 ACPI!DispatchCtxtQueue
05 ACPI!StartTimeSlicePassive
06 ACPI!ACPIWorker
07 nt!PspSystemThreadStartup
08 nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899b00ac
Status = 0n0
Result = 0x00000000
Context = 0x898a8760
buffer = unsigned char [64] ""
1: kd> dt GET_ADDRESS_CONTEXT 0x898a8760
ACPI!GET_ADDRESS_CONTEXT
+0x000 PciObject : 0x8996cd78 _NSObj
+0x004 Bus : 0x899c1554 ""
+0x008 Slot : 0x899c1558 _PCI_SLOT_NUMBER
+0x00c ParentBus : 0 ''
+0x010 ParentSlot : _PCI_SLOT_NUMBER
+0x014 Flags : 0x2108
+0x018 Address : 0x110000
+0x01c BaseBusNumber : 0
+0x020 RunCompletion : 0n1
+0x024 CompletionRoutine : 0xf740ceea void ACPI!GetPciAddressWorker+0
+0x028 CompletionContext : 0x899c1548 Void
1: kd> db 0x8996cd78
8996cd78 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 ............HNSO
8996cde8 44 00 00 00 00 90 96 89-b0 4b 97 89 b4 ce 96 89 D........K......
1: kd> dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x899c1554)
((ACPI!unsigned char *)0x899c1554) : 0x899c1554 : 0x0 [Type: unsigned char *]
0x0 [Type: unsigned char]
1: kd> dt _PCI_SLOT_NUMBER 0x899c1558 -r
hal!_PCI_SLOT_NUMBER
+0x000 u : __unnamed
+0x000 bits : __unnamed
+0x000 DeviceNumber : 0y10001 (0x11)
+0x000 FunctionNumber : 0y000
+0x000 Reserved : 0y000000000000000000000000 (0)
+0x000 AsULONG : 0x11
1: kd> g
Breakpoint 63 hit
eax=00000000 ebx=00000000 ecx=00002000 edx=00002707 esi=898a8760 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> kc
00 ACPI!GetPciAddressWorker
01 ACPI!GetPciAddressWorker
02 ACPI!ACPIGetWorkerForInteger
03 ACPI!AsyncCallBack
04 ACPI!RunContext
05 ACPI!DispatchCtxtQueue
06 ACPI!StartTimeSlicePassive
07 ACPI!ACPIWorker
08 nt!PspSystemThreadStartup
09 nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899b00ac
Status = 0n0
Result = 0x00000000
Context = 0x899c1548
buffer = unsigned char [64] ""
1: kd> dt GET_ADDRESS_CONTEXT 0x899c1548
ACPI!GET_ADDRESS_CONTEXT
+0x000 PciObject : 0x8996d860 _NSObj
+0x004 Bus : 0x898a8b18 ""
+0x008 Slot : 0x898a8b14 _PCI_SLOT_NUMBER
+0x00c ParentBus : 0 ''
+0x010 ParentSlot : _PCI_SLOT_NUMBER
+0x014 Flags : 0x128
+0x018 Address : 0x10000
+0x01c BaseBusNumber : 0
+0x020 RunCompletion : 0n1
+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0
+0x028 CompletionContext : 0x898a8ae0 Void
1: kd> db 0x8996d860
8996d860 5c d4 96 89 38 dc 96 89-78 cd 96 89 a4 d8 96 89 \...8...x.......
8996d870 53 32 46 30 30 f3 9a 89-1c d8 96 89 00 00 06 00 S2F00...........
8996d880 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d890 88 8a 96 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...
8996d8a0 00 90 96 89 f4 db 96 89-e8 d8 96 89 60 d8 96 89 ............`...
8996d8b0 00 00 00 00 5f 41 44 52-30 f3 9a 89 60 d8 96 89 ...._ADR0...`...
8996d8c0 00 00 01 00 00 00 00 00-00 00 01 00 00 00 00 00 ................
8996d8d0 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
1: kd> dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char *)0x898a8b18)
((ACPI!unsigned char *)0x898a8b18) : 0x898a8b18 : 0x0 [Type: unsigned char *]
0x0 [Type: unsigned char]
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=00000000 ecx=8996cd78 edx=00002707 esi=899c1548 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> kc
00 hal!HalGetBusDataByOffset
01 ACPI!GetPciAddressWorker
02 ACPI!GetPciAddressWorker
03 ACPI!ACPIGetWorkerForInteger
04 ACPI!AsyncCallBack
05 ACPI!RunContext
06 ACPI!DispatchCtxtQueue
07 ACPI!StartTimeSlicePassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 0
SlotNumber = 0x11
Buffer = 0xf791ac04
Offset = 0
Length = 0x40
bus = struct _BUS_HANDLER
1: kd> dt PCI_COMMON_CONFIG 0xf791ac04 -r
hal!PCI_COMMON_CONFIG
+0x000 VendorID : 0x15ad
+0x002 DeviceID : 0x790
+0x004 Command : 7
+0x006 Status : 0x290
+0x008 RevisionID : 0x2 ''
+0x009 ProgIf : 0x1 ''
+0x00a SubClass : 0x4 ''
+0x00b BaseClass : 0x6 ''
+0x00c CacheLineSize : 0x8 ''
+0x00d LatencyTimer : 0x40 '@'
+0x00e HeaderType : 0x1 ''
+0x00f BIST : 0 ''
+0x010 u : __unnamed
+0x000 type1 : _PCI_HEADER_TYPE_1
+0x000 BaseAddresses : [2] 0
+0x008 PrimaryBus : 0 ''
+0x009 SecondaryBus : 0x2 ''
+0x00a SubordinateBus : 0x2 ''
+0x00b SecondaryLatency : 0x44 'D'
+0x00c IOBase : 0x20 ' '
+0x00d IOLimit : 0x30 '0'
+0x00e SecondaryStatus : 0x280
+0x010 MemoryBase : 0xfd50
+0x012 MemoryLimit : 0xfdf0
+0x014 PrefetchBase : 0xe7b1
+0x016 PrefetchLimit : 0xe7f1
+0x018 PrefetchBaseUpper32 : 0
+0x01c PrefetchLimitUpper32 : 0
+0x020 IOBaseUpper16 : 0
+0x022 IOLimitUpper16 : 0
+0x024 CapabilitiesPtr : 0x40 '@'
+0x025 Reserved1 : [3] ""
+0x028 ROMBaseAddress : 0
+0x02c InterruptLine : 0xff ''
+0x02d InterruptPin : 0 ''
+0x02e BridgeControl : 4
1: kd> kc
00 ACPI!PciConfigSpaceHandlerWorker
01 ACPI!GetPciAddressWorker
02 ACPI!GetPciAddressWorker
03 ACPI!ACPIGetWorkerForInteger
04 ACPI!AsyncCallBack
05 ACPI!RunContext
06 ACPI!DispatchCtxtQueue
07 ACPI!StartTimeSlicePassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899b00ac
CompletionStatus = 0n0
Result = 0x00000000
Context = 0x898a8ae0
1: kd> dt PCI_CONFIG_STATE 0x898a8ae0
ACPI!PCI_CONFIG_STATE
+0x000 AccessType : 0
+0x004 OpRegion : 0x8996d988 _NSObj
+0x008 Address : 0
+0x00c Size : 4
+0x010 Data : 0x897e7de0 -> 0
+0x014 Context : 0
+0x018 CompletionHandler : 0xf7420914 Void
+0x01c CompletionContext : 0x897e60ac Void
+0x020 PciObj : 0x8996d860 _NSObj
+0x024 ParentObj : (null)
+0x028 CompletionHandlerType : 0
+0x02c Flags : 0x1100
+0x030 RunCompletion : 0n1
+0x034 Slot : _PCI_SLOT_NUMBER
+0x038 Bus : 0x2 ''
+0x039 IsPciDeviceResult : 0 ''
1: kd> dx -id 0,0,899a2278 -r1 (*((ACPI!_PCI_SLOT_NUMBER *)0x898a8b14))
(*((ACPI!_PCI_SLOT_NUMBER *)0x898a8b14)) [Type: _PCI_SLOT_NUMBER]
+0x000\] u \[Type: __unnamed
1: kd> dt ACPI!_PCI_SLOT_NUMBER 0x898a8b14 -r
+0x000 u : __unnamed
+0x000 bits : __unnamed
+0x000 DeviceNumber : 0y00001 (0x1)
+0x000 FunctionNumber : 0y000
+0x000 Reserved : 0y000000000000000000000000 (0)
+0x000 AsULONG : 1
Device (S2F0)
{
Name (_ADR, 0x00010000) // _ADR: Address
Name (_SUN, 0x41) // _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))
}
PCIVEN_1022&DEV_2000&SUBSYS_20001022&REV_10 网卡驱动!!!急...
2000年10月22日你那个是虚拟机VMXNET的硬件需要安装VMware Tools 他会自动给你装好驱动
PCI\VEN_1022&DEV_2000&SUBSYS_20001014&REV_44\3&267A616A&0&10
1: kd> g
Breakpoint 51 hit
eax=00000002 ebx=898a8ae0 ecx=00000100 edx=8996d988 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> kc
00 hal!HalGetBusDataByOffset
01 ACPI!PciConfigSpaceHandlerWorker
02 ACPI!GetPciAddressWorker
03 ACPI!GetPciAddressWorker
04 ACPI!ACPIGetWorkerForInteger
05 ACPI!AsyncCallBack
06 ACPI!RunContext
07 ACPI!DispatchCtxtQueue
08 ACPI!StartTimeSlicePassive
09 ACPI!ACPIWorker
0a nt!PspSystemThreadStartup
0b nt!KiThreadStartup
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 2
SlotNumber = 1
Buffer = 0x897e7de0
Offset = 0
Length = 4
bus = struct _BUS_HANDLER
1: kd> gu
Breakpoint 53 hit
eax=00000004 ebx=898a8ae0 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 0x897e7de0
897e7de0 22 10 00 20 00 00 00 00-00 00 00 00 20 00 00 00 ".. ........ ...
897e7df0 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
897e7e00 71 9b 41 f7 2c da 96 89-1c 61 7e 89 43 41 4c 4c q.A.,....a~.CALL
897e7e10 cc 00 00 00 01 00 00 00-09 77 42 f7 00 00 00 00 .........wB.....
897e7e20 00 00 00 00 74 cf 96 89-01 00 00 00 01 00 00 00 ....t...........
897e7e30 1c 61 7e 89 00 00 00 00-00 00 00 00 00 00 00 00 .a~.............
897e7e40 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
897e7e50 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1: kd> dd 0x897e7de0
897e7de0 20001022 00000000 00000000 00000020
第二部分:
1: kd> x acpi!greadyqueue
f743a928 ACPI!gReadyQueue = struct _ctxtq
1: kd> dx -r1 (*((ACPI!_ctxtq *)0xf743a928))
(*((ACPI!_ctxtq *)0xf743a928)) [Type: _ctxtq]
+0x000\] dwfCtxtQ : 0x0 \[Type: unsigned long
+0x004\] pkthCurrent : 0x0 \[Type: _KTHREAD \*
+0x008\] pctxtCurrent : 0x0 \[Type: _ctxt \*
+0x00c\] plistCtxtQ : 0x8985e010 \[Type: _List \*
+0x010\] dwmsTimeSliceLength : 0x64 \[Type: unsigned long
+0x014\] dwmsTimeSliceInterval : 0x64 \[Type: unsigned long
+0x018\] pfnPauseCallback : 0x0 \[Type: void (__cdecl\*)(void \*)
+0x01c\] PauseCBContext : 0x0 \[Type: void \*
+0x020\] mutCtxtQ \[Type: _mutex
+0x028\] Timer \[Type: _KTIMER
+0x050\] DpcStartTimeSlice \[Type: _KDPC
+0x070\] DpcExpireTimeSlice \[Type: _KDPC
+0x090\] WorkItem \[Type: _WORK_QUEUE_ITEM
1: kd> dx -r1 ((ACPI!_List *)0x8985e010)
((ACPI!_List *)0x8985e010) : 0x8985e010 [Type: _List *]
+0x000\] plistPrev : **0x897e6010** \[Type: _List \*
+0x004\] plistNext : 0x89781010 \[Type: _List \*
1: kd> dx -r1 ((ACPI!_List *)0x897e6010)
((ACPI!_List *)0x897e6010) : 0x897e6010 [Type: _List *]
+0x000\] plistPrev :**0x897e4010** \[Type: _List \*
+0x004\] plistNext : 0x8985e010 \[Type: _List \*