IopInitializePlugPlayServices调用后DeviceNodeInitialized和DeviceNodeStarted2种状态

nt!IopInitializePlugPlayServices函数分析之调用后DeviceNodeInitialized和DeviceNodeStarted两种状态

0: kd> g

Breakpoint 1 hit

nt!IopInitializePlugPlayServices:

80e67f60 55 push ebp

1: kd> kc

00 nt!IopInitializePlugPlayServices

01 nt!IoInitSystem

02 nt!Phase1Initialization

03 nt!PspSystemThreadStartup

04 nt!KiThreadStartup

1: kd> x nt!PpDeviceReferenceTable

80b1fa40 nt!PpDeviceReferenceTable = struct _RTL_AVL_TABLE

1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((ntkrnlmp!_RTL_AVL_TABLE *)0xffffffff80b1fa40))

(*((ntkrnlmp!_RTL_AVL_TABLE *)0xffffffff80b1fa40)) [Type: _RTL_AVL_TABLE]

+0x000\] BalancedRoot \[Type: _RTL_BALANCED_LINKS

+0x010\] OrderedPointer : 0x0 \[Type: void \*

+0x014\] WhichOrderedElement : 0x0 \[Type: unsigned long

+0x018\] NumberGenericTableElements : 0x0 \[Type: unsigned long

+0x01c\] DepthOfTree : 0x0 \[Type: unsigned long

+0x020\] RestartKey : 0x0 \[Type: _RTL_BALANCED_LINKS \*

+0x024\] DeleteCount : 0x0 \[Type: unsigned long

+0x028\] CompareRoutine : 0x80c87772 \[Type: _RTL_GENERIC_COMPARE_RESULTS (\*)(_RTL_AVL_TABLE \*,void \*,void \*)

+0x02c\] AllocateRoutine : 0x80c87834 \[Type: void \* (\*)(_RTL_AVL_TABLE \*,unsigned long)

+0x030\] FreeRoutine : 0x80c878de \[Type: void (\*)(_RTL_AVL_TABLE \*,void \*)

+0x034\] TableContext : 0x0 \[Type: void \*

1: kd> gu

nt!IoInitSystem+0x68f:

80e6554b 85c0 test eax,eax

1: kd> kv

ChildEBP RetAddr Args to Child

00 f789a838 80e632fd 80077000 00000000 89dd4020 nt!IoInitSystem+0x68f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\ioinit.c @ 599]

01 f789adac 80d391f0 80077000 00000000 00000000 nt!Phase1Initialization+0x9b3 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\init\init.c @ 2221]

02 f789addc 80b00d52 80e6294a 80077000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]

03 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]

1: kd> !devnode 0 1

Dumping IopRootDeviceNode (= 0x89db9ac0)

DevNode 0x89db9ac0 for PDO 0x89db9c00

InstancePath is "HTREE\ROOT\0"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeEnumerateCompletion (0x30d)

DevNode 0x89df8008 for PDO 0x89db98a0
InstancePath is "Root\ACPI_HAL\0000"
State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df8c98 for PDO 0x89df8df0

InstancePath is "Root\COMPOSITE_BATTERY\0000"

ServiceName is "Compbatt"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df8a48 for PDO 0x89df8ba0

InstancePath is "Root\dmio\0000"

ServiceName is "dmio"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df87f8 for PDO 0x89df8950

InstancePath is "Root\ftdisk\0000"
ServiceName is "ftdisk"
State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df85a8 for PDO 0x89df8700

InstancePath is "Root\LEGACY_AFD\0000"
ServiceName is "AFD"
State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df8358 for PDO 0x89df84b0

InstancePath is "Root\LEGACY_BEEP\0000"

ServiceName is "Beep"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db8008 for PDO 0x89df8260

InstancePath is "Root\LEGACY_CRCDISK\0000"

ServiceName is "crcdisk"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db8db8 for PDO 0x89db8f10

InstancePath is "Root\LEGACY_DMBOOT\0000"

ServiceName is "dmboot"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db8b68 for PDO 0x89db8cc0

InstancePath is "Root\LEGACY_DMLOAD\0000"

ServiceName is "dmload"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db8918 for PDO 0x89db8a70

InstancePath is "Root\LEGACY_FIPS\0000"

ServiceName is "Fips"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db86c8 for PDO 0x89db8820

InstancePath is "Root\LEGACY_GPC\0000"

ServiceName is "Gpc"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db8478 for PDO 0x89db85d0

InstancePath is "Root\LEGACY_IPSEC\0000"

ServiceName is "IPSec"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db8228 for PDO 0x89db8380

InstancePath is "Root\LEGACY_KSECDD\0000"

ServiceName is "ksecdd"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df7ee0 for PDO 0x89df7038

InstancePath is "Root\LEGACY_MNMDD\0000"

ServiceName is "mnmdd"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df7c90 for PDO 0x89df7de8

InstancePath is "Root\LEGACY_MOUNTMGR\0000"

ServiceName is "mountmgr"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df7a40 for PDO 0x89df7b98

InstancePath is "Root\LEGACY_NDIS\0000"

ServiceName is "NDIS"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df77f0 for PDO 0x89df7948

InstancePath is "Root\LEGACY_NDISTAPI\0000"

ServiceName is "NdisTapi"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df75a0 for PDO 0x89df76f8

InstancePath is "Root\LEGACY_NDISUIO\0000"

ServiceName is "Ndisuio"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df7350 for PDO 0x89df74a8

InstancePath is "Root\LEGACY_NDPROXY\0000"

ServiceName is "NDProxy"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db7008 for PDO 0x89df7258

InstancePath is "Root\LEGACY_NETBT\0000"

ServiceName is "NetBT"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db7db8 for PDO 0x89db7f10

InstancePath is "Root\LEGACY_NULL\0000"

ServiceName is "Null"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db7b68 for PDO 0x89db7cc0

InstancePath is "Root\LEGACY_PARTMGR\0000"

ServiceName is "PartMgr"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db7918 for PDO 0x89db7a70

InstancePath is "Root\LEGACY_RASACD\0000"

ServiceName is "RasAcd"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db76c8 for PDO 0x89db7820

InstancePath is "Root\LEGACY_RDPCDD\0000"

ServiceName is "RDPCDD"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db7478 for PDO 0x89db75d0

InstancePath is "Root\LEGACY_RDPWD\0000"

ServiceName is "RDPWD"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89db7228 for PDO 0x89db7380

InstancePath is "Root\LEGACY_TCPIP\0000"

ServiceName is "Tcpip"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df6ee0 for PDO 0x89df6038

InstancePath is "Root\LEGACY_TDTCP\0000"

ServiceName is "TDTCP"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df6c90 for PDO 0x89df6de8

InstancePath is "Root\LEGACY_VGASAVE\0000"

ServiceName is "VgaSave"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df6a40 for PDO 0x89df6b98

InstancePath is "Root\LEGACY_VOLSNAP\0000"

ServiceName is "volsnap"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df67f0 for PDO 0x89df6948

InstancePath is "Root\LEGACY_WANARP\0000"

ServiceName is "Wanarp"

State = DeviceNodeStarted (0x308)

Previous State = DeviceNodeInitialized (0x302)

DevNode 0x89df65a0 for PDO 0x89df66f8

InstancePath is "Root\MEDIA\MS_MMACM"

ServiceName is "audstub"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df6350 for PDO 0x89df64a8

InstancePath is "Root\MEDIA\MS_MMDRV"

ServiceName is "audstub"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db6008 for PDO 0x89df6258

InstancePath is "Root\MEDIA\MS_MMMCI"

ServiceName is "audstub"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db6db8 for PDO 0x89db6f10

InstancePath is "Root\MEDIA\MS_MMVCD"

ServiceName is "audstub"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db6b68 for PDO 0x89db6cc0

InstancePath is "Root\MEDIA\MS_MMVID"

ServiceName is "audstub"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db6918 for PDO 0x89db6a70

InstancePath is "Root\MS_L2TPMINIPORT\0000"

ServiceName is "Rasl2tp"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db66c8 for PDO 0x89db6820

InstancePath is "Root\MS_NDISWANIP\0000"

ServiceName is "NdisWan"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db6478 for PDO 0x89db65d0

InstancePath is "Root\MS_PPPOEMINIPORT\0000"

ServiceName is "RasPppoe"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89db6228 for PDO 0x89db6380

InstancePath is "Root\MS_PPTPMINIPORT\0000"

ServiceName is "PptpMiniport"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df5ee0 for PDO 0x89df5038

InstancePath is "Root\MS_PTIMINIPORT\0000"

ServiceName is "Raspti"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df5c90 for PDO 0x89df5de8

InstancePath is "Root\RDPDR\0000"

ServiceName is "rdpdr"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df5a40 for PDO 0x89df5b98

InstancePath is "Root\RDP_KBD\0000"

ServiceName is "TermDD"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df57f0 for PDO 0x89df5948

InstancePath is "Root\RDP_MOU\0000"

ServiceName is "TermDD"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df55a0 for PDO 0x89df56f8

InstancePath is "Root\SYSTEM\0000"

ServiceName is "swenum"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

DevNode 0x89df5350 for PDO 0x89df54a8

InstancePath is "Root\SYSTEM\0001"

ServiceName is "update"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

相关推荐
sitelist2 天前
nt!IopInitializePlugPlayServices函数分析之创建\Driver\PnpManager和驱动对应的ROOT设备
plugplayservice
sitelist4 天前
DeviceNodeStarted状态下nt!PipEnumerateDevice函数调用nt!IopQueryDeviceRelations函数查询设备关系
nodestarted·enumeratedev·devicerelations