nt!PipProcessStartPhase1函数中的nt!IopStartDevice
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
Translator failed to adjust resreqlist
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
Translator failed to adjust resreqlist
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
Translator failed to adjust resreqlist
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
Translator failed to adjust resreqlist
IopFindLegacyBusDeviceNode() Found HTREE\ROOT\0 with interface=0000000F & bus=00000000
Translator failed to adjust resreqlist
Resource requirements list already exists for PCI\VEN_15AD&DEV_0405&SUBSYS_040515AD&REV_00\3&61aaa01&0&78
ResReqList: Interface: 5, Bus: 0, Slot: f, AlternativeLists: 1
Alternative List: DescCount: d
Opt: 1, Share: 1 IO Min: 0:00001070, Max: 0:0000107f, Algn: 1, Len 10
Opt: 8, Share: 1 IO Min: 0:00000000, Max: 0:ffffffff, Algn: 10, Len 10
Opt: 0, Share: 1 DevicePrivate Data: 1, 0, 0
Opt: 1, Share: 1 MEM Min: 0:e8000000, Max: 0:efffffff, Algn: 1, Len 8000000
Opt: 8, Share: 1 MEM Min: 0:00000000, Max: 0:ffffffff, Algn: 8000000, Len 8000000
Opt: 0, Share: 1 DevicePrivate Data: 1, 1, 0
Opt: 1, Share: 1 MEM Min: 0:fe000000, Max: 0:fe7fffff, Algn: 1, Len 800000
Opt: 8, Share: 1 MEM Min: 0:00000000, Max: 0:ffffffff, Algn: 800000, Len 800000
Opt: 0, Share: 1 DevicePrivate Data: 1, 2, 0
Opt: 1, Share: 3 Unknown Descriptor type 0
Opt: 1, Share: 1 IO Min: 0:000003b0, Max: 0:000003bb, Algn: 1, Len c
Opt: 1, Share: 1 IO Min: 0:000003c0, Max: 0:000003df, Algn: 1, Len 20
Opt: 1, Share: 1 MEM Min: 0:000a0000, Max: 0:000bffff, Algn: 1, Len 20000
IopFindLegacyBusDeviceNode() Found ACPI\PNP0A03\2&daba3ff&0 with interface=00000005 & bus=00000000
IopFindLegacyBusDeviceNode() Found ACPI\PNP0A03\2&daba3ff&0 with interface=00000005 & bus=00000000
IopFindLegacyBusDeviceNode() Found ACPI\PNP0A03\2&daba3ff&0 with interface=00000005 & bus=00000000
IopFindLegacyBusDeviceNode() Found ACPI\PNP0A03\2&daba3ff&0 with interface=00000005 & bus=00000000
IopFindLegacyBusDeviceNode() Found ACPI\PNP0A03\2&daba3ff&0 with interface=00000005 & bus=00000000
IopFindLegacyBusDeviceNode() Found ACPI\PNP0A03\2&daba3ff&0 with interface=00000005 & bus=00000000
Resource requirements list already exists for PCI\VEN_15AD&DEV_0774&SUBSYS_197615AD&REV_00\4&47b7341&0&0088
ResReqList: Interface: 5, Bus: 2, Slot: 0, AlternativeLists: 1
Alternative List: DescCount: 4
Opt: 1, Share: 1 IO Min: 0:00002080, Max: 0:0000209f, Algn: 1, Len 20
Opt: 8, Share: 1 IO Min: 0:00000000, Max: 0:ffffffff, Algn: 20, Len 20
Opt: 0, Share: 1 DevicePrivate Data: 1, 4, 0
Opt: 0, Share: 3 INT Min: 0, Max: ff
IopFindLegacyBusDeviceNode() Found PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88 with interface=00000005 & bus=00000002
Resource requirements list already exists for PCI\VEN_8086&DEV_100F&SUBSYS_075015AD&REV_01\4&47b7341&0&0888
ResReqList: Interface: 5, Bus: 2, Slot: 1, AlternativeLists: 1
Alternative List: DescCount: a
Opt: 1, Share: 1 MEM Min: 0:fd5c0000, Max: 0:fd5dffff, Algn: 1, Len 20000
Opt: 8, Share: 1 MEM Min: 0:00000000, Max: ffffffff:ffffffff, Algn: 20000, Len 20000
Opt: 0, Share: 1 DevicePrivate Data: 1, 0, 0
Opt: 1, Share: 1 MEM Min: 0:fdff0000, Max: 0:fdffffff, Algn: 1, Len 10000
Opt: 8, Share: 1 MEM Min: 0:00000000, Max: ffffffff:ffffffff, Algn: 10000, Len 10000
Opt: 0, Share: 1 DevicePrivate Data: 1, 2, 0
Opt: 1, Share: 1 IO Min: 0:00002000, Max: 0:0000203f, Algn: 1, Len 40
Opt: 8, Share: 1 IO Min: 0:00000000, Max: 0:ffffffff, Algn: 40, Len 40
Opt: 0, Share: 1 DevicePrivate Data: 1, 4, 0
Opt: 0, Share: 3 INT Min: 0, Max: ff
IopFindLegacyBusDeviceNode() Found PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88 with interface=00000005 & bus=00000002
IopFindLegacyBusDeviceNode() Found PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88 with interface=00000005 & bus=00000002
IopFindLegacyBusDeviceNode() Found PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88 with interface=00000005 & bus=00000002
Resource requirements list already exists for PCI\VEN_15AD&DEV_0770&SUBSYS_077015AD&REV_00\4&47b7341&0&1888
ResReqList: Interface: 5, Bus: 2, Slot: 3, AlternativeLists: 1
Alternative List: DescCount: 4
Opt: 1, Share: 1 MEM Min: 0:fd5ef000, Max: 0:fd5effff, Algn: 1, Len 1000
Opt: 8, Share: 1 MEM Min: 0:00000000, Max: 0:ffffffff, Algn: 1000, Len 1000
Opt: 0, Share: 1 DevicePrivate Data: 1, 0, 0
Opt: 0, Share: 3 INT Min: 0, Max: ff
IopFindLegacyBusDeviceNode() Found PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88 with interface=00000005 & bus=00000002
Trying to allocate resources for ACPI\VMW0003\4&5289e18&0.
Adding 1/1 req alt to the arbiters for ACPI\VMW0003\4&5289e18&0
Building CM resource lists for ACPI\VMW0003\4&5289e18&0...
Raw resources Cm Resource List -
List Count = 1, Bus Number = 0
Version = 1, Revision = 1, Desc count = 1
INT Level: c, Vector: c, Affinity: ffffffff
Translated resources Cm Resource List -
List Count = 1, Bus Number = 0
Version = 1, Revision = 1, Desc count = 1
INT Level: 9, Vector: 1a3, Affinity: 3
ACPI\VMW0003\4&5289e18&0: DeviceNodeDriversAdded => DeviceNodeResourcesAssigned
PipCallDriverAddDevice: Processing devnode 0x89d26158
PipCallDriverAddDevice: DevNode flags going in = 0x0002f0
PipCallDriverAddDevice: Will load driver
PipCallDriverAddDevice: Opening registry key ACPI\PNP0C02\1f
PipCallDriverAddDevice: Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
PipCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
PipCallDriverAddDevice Error 0xc0000034 reading service value for ACPI\PNP0C02\1f
PipCallDriverAddDevice: DevNode flags leaving = 0x0002f0
PipCallDriverAddDevice: Cleaning up
PipCallDriverAddDevice: Returning status 0xc0000001
PipCallDriverAddDevice: Processing devnode 0x89c64008
PipCallDriverAddDevice: DevNode flags going in = 0x0002f0
PipCallDriverAddDevice: Will load driver
PipCallDriverAddDevice: Opening registry key ACPI\PNP0200\4&5289e18&0
PipCallDriverAddDevice: Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
PipCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
PipCallDriverAddDevice Error 0xc0000034 reading service value for ACPI\PNP0200\4&5289e18&0
PipCallDriverAddDevice: DevNode flags leaving = 0x0002f0
PipCallDriverAddDevice: Cleaning up
PipCallDriverAddDevice: Returning status 0xc0000001
PipCallDriverAddDevice: Processing devnode 0x89c64ee0
PipCallDriverAddDevice: DevNode flags going in = 0x0002f0
PipCallDriverAddDevice: Will load driver
PipCallDriverAddDevice: Opening registry key ACPI\PNP0001\4&5289e18&0
PipCallDriverAddDevice: Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
PipCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
PipCallDriverAddDevice Error 0xc0000034 reading service value for ACPI\PNP0001\4&5289e18&0
PipCallDriverAddDevice: DevNode flags leaving = 0x0002f0
PipCallDriverAddDevice: Cleaning up
PipCallDriverAddDevice: Returning status 0xc0000001
PipCallDriverAddDevice: Processing devnode 0x89c64db8
PipCallDriverAddDevice: DevNode flags going in = 0x0002f0
PipCallDriverAddDevice: Will load driver
PipCallDriverAddDevice: Opening registry key ACPI\PNP0100\4&5289e18&0
PipCallDriverAddDevice: Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
PipCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
PipCallDriverAddDevice Error 0xc0000034 reading service value for ACPI\PNP0100\4&5289e18&0
PipCallDriverAddDevice: DevNode flags leaving = 0x0002f0
PipCallDriverAddDevice: Cleaning up
PipCallDriverAddDevice: Returning status 0xc0000001
PipCallDriverAddDevice: Processing devnode 0x89c64b68
PipCallDriverAddDevice: DevNode flags going in = 0x0002f0
PipCallDriverAddDevice: Will load driver
PipCallDriverAddDevice: Opening registry key ACPI\PNP0800\4&5289e18&0
PipCallDriverAddDevice: Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
PipCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
PipCallDriverAddDevice Error 0xc0000034 reading service value for ACPI\PNP0800\4&5289e18&0
PipCallDriverAddDevice: DevNode flags leaving = 0x0002f0
PipCallDriverAddDevice: Cleaning up
PipCallDriverAddDevice: Returning status 0xc0000001
Breakpoint 1 hit
mouclass!MousePnP:
f750b59c 55 push ebp
1: kd> kc
00 mouclass!MousePnP
01 nt!IofCallDriver
02 nt!IopSynchronousCall
03 nt!IopStartDevice
04 nt!PipProcessStartPhase1
05 nt!PipProcessDevNodeTree
06 nt!PiProcessStartSystemDevices
07 nt!PipDeviceActionWorker
08 nt!ExpWorkerThread
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> kv
ChildEBP RetAddr Args to Child
00 f78eea2c 80a2675c 89976150 89a36e70 89a36fb8 mouclass!MousePnP (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 4172]
01 f78eea48 80c95e00 f78eeabc 89c64918 89cb4c98 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
02 f78eea78 80c95f56 00000000 f78eea98 00000000 nt!IopSynchronousCall+0x1aa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 258]
03 f78eeabc 80c8f415 89cb4c98 00000001 00000000 nt!IopStartDevice+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 334]
04 f78eead8 80c94d55 89cb4c98 89a2c801 00000000 nt!PipProcessStartPhase1+0x9d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 5014]
05 f78eed24 80c955c0 89db9ac0 00000001 00000000 nt!PipProcessDevNodeTree+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 4648]
06 f78eed58 80a2deb5 89a2c878 89dcfda0 80bf5cbc nt!PiProcessStartSystemDevices+0x6e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 6436]
07 f78eed80 80af2bb9 00000000 00000000 89dcfda0 nt!PipDeviceActionWorker+0x199 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 821]
08 f78eedac 80d391f0 00000000 00000000 00000000 nt!ExpWorkerThread+0x10f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ex\worker.c @ 1153]
09 f78eeddc 80b00d52 80af2aaa 00000001 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
0a 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]
1: kd> dv
DeviceObject = 0x89976150 Device for "\Driver\Mouclass"
Irp = 0x89a36e70
status = 0n-1986567856
enabled = 0x89 ''
stack = 0x89976150 IRP_MJ_READ / 0x0 for {...}
startInformation = 0
devCaps = struct _DEVICE_CAPABILITIES
port = 0x00000008
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((mouclass!_DEVICE_OBJECT *)0x89976150)
((mouclass!_DEVICE_OBJECT *)0x89976150) : 0x89976150 : Device for "\Driver\Mouclass" [Type: _DEVICE_OBJECT *]
\
Flags : 0x2044
UpperDevices : None
LowerDevices
Driver : 0x89945180 : Driver "\Driver\Mouclass" [Type: _DRIVER_OBJECT *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((mouclass!_DEVICE_OBJECT *)0x89976150))
(*((mouclass!_DEVICE_OBJECT *)0x89976150)) : Device for "\Driver\Mouclass" [Type: _DEVICE_OBJECT]
+0x000\] Type : 3 \[Type: short
+0x002\] Size : 0x1c8 \[Type: unsigned short
+0x004\] ReferenceCount : 0 \[Type: long
+0x008\] DriverObject : 0x89945180 : Driver "\\Driver\\Mouclass" \[Type: _DRIVER_OBJECT \*
+0x00c\] NextDevice : 0x0 \[Type: _DEVICE_OBJECT \*
+0x010\] AttachedDevice : 0x0 \[Type: _DEVICE_OBJECT \*
+0x014\] CurrentIrp : 0x0 \[Type: _IRP \*
+0x018\] Timer : 0x0 \[Type: _IO_TIMER \*
+0x01c\] Flags : 0x2044 \[Type: unsigned long
+0x020\] Characteristics : 0x0 \[Type: unsigned long
+0x024\] DoNotUse1 : 0x0 \[Type: void \*
+0x028\] DeviceExtension : 0x89976208 \[Type: void \*
+0x02c\] DeviceType : 0xf \[Type: unsigned long
+0x030\] StackSize : 6 \[Type: char
+0x034\] Queue \[Type: __unnamed
+0x05c\] AlignmentRequirement : 0x0 \[Type: unsigned long
+0x060\] DeviceQueue \[Type: _KDEVICE_QUEUE
+0x074\] Dpc \[Type: _KDPC
+0x094\] ActiveThreadCount : 0x0 \[Type: unsigned long
+0x098\] SecurityDescriptor : 0xe12a6f70 \[Type: void \*
+0x09c\] DeviceLock \[Type: _KEVENT
+0x0ac\] SectorSize : 0x0 \[Type: unsigned short
+0x0ae\] Spare1 : 0x0 \[Type: unsigned short
+0x0b0\] DeviceObjectExtension : 0x89976318 \[Type: _DEVOBJ_EXTENSION \*
+0x0b4\] Reserved : 0x0 \[Type: void \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((mouclass!_DEVOBJ_EXTENSION *)0x89976318)
((mouclass!_DEVOBJ_EXTENSION *)0x89976318) : 0x89976318 [Type: _DEVOBJ_EXTENSION *]
+0x000\] Type : 13 \[Type: short
+0x002\] Size : 0x0 \[Type: unsigned short
+0x004\] DeviceObject : 0x89976150 : Device for "\\Driver\\Mouclass" \[Type: _DEVICE_OBJECT \*
1: kd> dt nt!_DEVOBJ_EXTENSION 0x89976318
+0x000 Type : 0n13
+0x002 Size : 0
+0x004 DeviceObject : 0x89976150 _DEVICE_OBJECT
+0x008 PowerFlags : 0x10
+0x00c Dope : (null)
+0x010 ExtensionFlags : 0x10
+0x014 DeviceNode : (null)
+0x018 AttachedTo : 0x89a73c38 _DEVICE_OBJECT
+0x01c StartIoCount : 0n0
+0x020 StartIoKey : 0n0
+0x024 StartIoFlags : 0
+0x028 Vpb : (null)
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ntkrnlmp!_DEVICE_OBJECT *)0x89a73c38)
((ntkrnlmp!_DEVICE_OBJECT *)0x89a73c38) : 0x89a73c38 : Device for "\Driver\i8042prt" [Type: _DEVICE_OBJECT *]
\
Flags : 0x2004
UpperDevices : Immediately above is Device for "\Driver\Mouclass" [at 0x89976150]
LowerDevices : Immediately below is Device for "\Driver\ACPI" [at 0x89cb4c98]
Driver : 0x89a753a8 : Driver "\Driver\i8042prt" [Type: _DRIVER_OBJECT *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((ntkrnlmp!_DEVICE_OBJECT *)0x89a73c38))
(*((ntkrnlmp!_DEVICE_OBJECT *)0x89a73c38)) : Device for "\Driver\i8042prt" [Type: _DEVICE_OBJECT]
+0x000\] Type : 3 \[Type: short
+0x002\] Size : 0x398 \[Type: unsigned short
+0x004\] ReferenceCount : 0 \[Type: long
+0x008\] DriverObject : 0x89a753a8 : Driver "\\Driver\\i8042prt" \[Type: _DRIVER_OBJECT \*
+0x00c\] NextDevice : 0x89b93020 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x010\] AttachedDevice : 0x89976150 : Device for "\\Driver\\Mouclass" \[Type: _DEVICE_OBJECT \*
+0x014\] CurrentIrp : 0x0 \[Type: _IRP \*
+0x018\] Timer : 0x0 \[Type: _IO_TIMER \*
+0x01c\] Flags : 0x2004 \[Type: unsigned long
+0x020\] Characteristics : 0x0 \[Type: unsigned long
+0x024\] Vpb : 0x0 \[Type: _VPB \*
+0x028\] DeviceExtension : 0x89a73cf0 \[Type: void \*
+0x02c\] DeviceType : 0x27 \[Type: unsigned long
+0x030\] StackSize : 5 \[Type: char
+0x034\] Queue \[Type: __unnamed
+0x05c\] AlignmentRequirement : 0x0 \[Type: unsigned long
+0x060\] DeviceQueue \[Type: _KDEVICE_QUEUE
+0x074\] Dpc \[Type: _KDPC
+0x094\] ActiveThreadCount : 0x0 \[Type: unsigned long
+0x098\] SecurityDescriptor : 0x0 \[Type: void \*
+0x09c\] DeviceLock \[Type: _KEVENT
+0x0ac\] SectorSize : 0x0 \[Type: unsigned short
+0x0ae\] Spare1 : 0x1 \[Type: unsigned short
+0x0b0\] DeviceObjectExtension : 0x89a73fd0 \[Type: _DEVOBJ_EXTENSION \*
+0x0b4\] Reserved : 0x0 \[Type: void \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ntkrnlmp!_DEVOBJ_EXTENSION *)0x89a73fd0)
((ntkrnlmp!_DEVOBJ_EXTENSION *)0x89a73fd0) : 0x89a73fd0 [Type: _DEVOBJ_EXTENSION *]
+0x000\] Type : 13 \[Type: short
+0x002\] Size : 0x0 \[Type: unsigned short
+0x004\] DeviceObject : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x008\] PowerFlags : 0x0 \[Type: unsigned long
+0x00c\] Dope : 0x0 \[Type: _DEVICE_OBJECT_POWER_EXTENSION \*
+0x010\] ExtensionFlags : 0x10 \[Type: unsigned long
+0x014\] DeviceNode : 0x0 \[Type: void \*
+0x018\] AttachedTo : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x01c\] StartIoCount : 0 \[Type: long
+0x020\] StartIoKey : 0 \[Type: long
+0x024\] StartIoFlags : 0x0 \[Type: unsigned long
+0x028\] Vpb : 0x0 \[Type: _VPB \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ntkrnlmp!_DEVICE_OBJECT *)0x89cb4c98)
((ntkrnlmp!_DEVICE_OBJECT *)0x89cb4c98) : 0x89cb4c98 : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT *]
\
Flags : 0x1040
UpperDevices : Immediately above is Device for "\Driver\i8042prt" [at 0x89a73c38]
LowerDevices : None
Driver : 0x89db5530 : Driver "\Driver\ACPI" [Type: _DRIVER_OBJECT *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((ntkrnlmp!_DEVICE_OBJECT *)0x89cb4c98))
(*((ntkrnlmp!_DEVICE_OBJECT *)0x89cb4c98)) : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT]
+0x000\] Type : 3 \[Type: short
+0x002\] Size : 0xb8 \[Type: unsigned short
+0x004\] ReferenceCount : 0 \[Type: long
+0x008\] DriverObject : 0x89db5530 : Driver "\\Driver\\ACPI" \[Type: _DRIVER_OBJECT \*
+0x00c\] NextDevice : 0x89db94e8 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] AttachedDevice : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x014\] CurrentIrp : 0x0 \[Type: _IRP \*
+0x018\] Timer : 0x0 \[Type: _IO_TIMER \*
+0x01c\] Flags : 0x1040 \[Type: unsigned long
+0x020\] Characteristics : 0x80 \[Type: unsigned long
+0x024\] Vpb : 0x0 \[Type: _VPB \*
+0x028\] DeviceExtension : 0x89df4a68 \[Type: void \*
+0x02c\] DeviceType : 0x32 \[Type: unsigned long
+0x030\] StackSize : 4 \[Type: char
+0x034\] Queue \[Type: __unnamed
+0x05c\] AlignmentRequirement : 0x0 \[Type: unsigned long
+0x060\] DeviceQueue \[Type: _KDEVICE_QUEUE
+0x074\] Dpc \[Type: _KDPC
+0x094\] ActiveThreadCount : 0x0 \[Type: unsigned long
+0x098\] SecurityDescriptor : 0xe12a6f70 \[Type: void \*
+0x09c\] DeviceLock \[Type: _KEVENT
+0x0ac\] SectorSize : 0x0 \[Type: unsigned short
+0x0ae\] Spare1 : 0x1 \[Type: unsigned short
+0x0b0\] DeviceObjectExtension : 0x89cb4d50 \[Type: _DEVOBJ_EXTENSION \*
+0x0b4\] Reserved : 0x0 \[Type: void \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ntkrnlmp!_DEVOBJ_EXTENSION *)0x89cb4d50)
((ntkrnlmp!_DEVOBJ_EXTENSION *)0x89cb4d50) : 0x89cb4d50 [Type: _DEVOBJ_EXTENSION *]
+0x000\] Type : 13 \[Type: short
+0x002\] Size : 0x0 \[Type: unsigned short
+0x004\] DeviceObject : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x008\] PowerFlags : 0x0 \[Type: unsigned long
+0x00c\] Dope : 0x0 \[Type: _DEVICE_OBJECT_POWER_EXTENSION \*
+0x010\] ExtensionFlags : 0x10 \[Type: unsigned long
+0x014\] DeviceNode : 0x89c64918 \[Type: void \*
+0x018\] AttachedTo : 0x0 \[Type: _DEVICE_OBJECT \*
+0x01c\] StartIoCount : 0 \[Type: long
+0x020\] StartIoKey : 0 \[Type: long
+0x024\] StartIoFlags : 0x0 \[Type: unsigned long
+0x028\] Vpb : 0x0 \[Type: _VPB \*
NTSTATUS
PipProcessDevNodeTree(
IN PDEVICE_NODE SubtreeRootDeviceNode,
IN BOOLEAN LoadDriver,
IN BOOLEAN ReallocateResources,
IN ENUM_TYPE EnumType,
IN BOOLEAN Synchronous,
IN BOOLEAN ProcessOnlyIntermediateStates,
IN PADD_CONTEXT AddContext,
IN PPI_DEVICE_REQUEST Request
)
{
case DeviceNodeResourcesAssigned:
if (!ProcessOnlyIntermediateStates) {
if (ReallocateResources && startRoot == NULL) {
//
// If we assigned resources to this previously
// conflicting devnode, remember him so that we will
// initial processing on devices in that subtree.
//
startRoot = currentNode;
}
status = PipProcessStartPhase1(currentNode, Synchronous);
if (NT_SUCCESS(status)) {
nextNode = SameNode;
} else {
//
// Cleanup is currently handled in the
// DeviceNodeStartCompletion phase, thus
// PipProcessStartPhase1 should always succeed.
//
ASSERT(0);
nextNode = SiblingNode;
}
} else {
nextNode = SiblingNode;
}
break;
NTSTATUS
MousePnP (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
)
{
switch (stack->MinorFunction) {
case IRP_MN_START_DEVICE:
//
// The device is starting.
//
// We cannot touch the device (send it any non pnp irps) until a
// start device has been passed down to the lower drivers.
//
status = MouseSendIrpSynchronously (data->TopPort, Irp, TRUE);
1: kd> t
mouclass!MouseSendIrpSynchronously:
f750e45e 55 push ebp
1: kd> kc
00 mouclass!MouseSendIrpSynchronously
01 mouclass!MousePnP
02 nt!IofCallDriver
03 nt!IopSynchronousCall
04 nt!IopStartDevice
05 nt!PipProcessStartPhase1
06 nt!PipProcessDevNodeTree
07 nt!PiProcessStartSystemDevices
08 nt!PipDeviceActionWorker
09 nt!ExpWorkerThread
0a nt!PspSystemThreadStartup
0b nt!KiThreadStartup
1: kd> dv
DeviceObject = 0x89a73c38 Device for "\Driver\i8042prt"
Irp = 0x89a36e70
CopyToNext = 0x01 ''
event = struct _KEVENT
1: kd> p
nt!IofCallDriver+0x5e:
80a26758 ff548138 call dword ptr [ecx+eax*4+38h]
1: kd> t
Breakpoint 2 hit
i8042prt!I8xPnP:
bac89d74 55 push ebp
1: kd> kc
00 i8042prt!I8xPnP
01 nt!IofCallDriver
02 mouclass!MouseSendIrpSynchronously
03 mouclass!MousePnP
04 nt!IofCallDriver
05 nt!IopSynchronousCall
06 nt!IopStartDevice
07 nt!PipProcessStartPhase1
08 nt!PipProcessDevNodeTree
09 nt!PiProcessStartSystemDevices
0a nt!PipDeviceActionWorker
0b nt!ExpWorkerThread
0c nt!PspSystemThreadStartup
0d nt!KiThreadStartup
1: kd> dv
DeviceObject = 0x89a73c38 Device for "\Driver\i8042prt"
Irp = 0x89a36e70
status = 0n-1161257612
stack = 0x89a36e70 IRP_MJ_SET_INFORMATION / 0x0 for Device for {...}
devCaps = 0x89a73c38
1: kd> t
eax=00000000 ebx=89a36f70 ecx=00000000 edx=00000000 esi=89a36e70 edi=89a73cf0
eip=bac89aa0 esp=f78ee95c ebp=f78ee980 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
i8042prt!I8xSendIrpSynchronously:
bac89aa0 55 push ebp
1: kd> kc
00 i8042prt!I8xSendIrpSynchronously
01 i8042prt!I8xPnP
02 nt!IofCallDriver
03 mouclass!MouseSendIrpSynchronously
04 mouclass!MousePnP
05 nt!IofCallDriver
06 nt!IopSynchronousCall
07 nt!IopStartDevice
08 nt!PipProcessStartPhase1
09 nt!PipProcessDevNodeTree
0a nt!PiProcessStartSystemDevices
0b nt!PipDeviceActionWorker
0c nt!ExpWorkerThread
0d nt!PspSystemThreadStartup
0e nt!KiThreadStartup
1: kd> dv
DeviceObject = 0x89cb4c98 Device for "\Driver\ACPI"
Irp = 0x89a36e70
Strict = 0x01 ''
event = struct _KEVENT
1: kd> t
eax=0000001b ebx=00000000 ecx=89db5530 edx=89a36e70 esi=89a36e70 edi=89cb4c98
eip=f7403f70 esp=f78ee91c ebp=f78ee934 iopl=0 nv up ei ng nz ac po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000292
ACPI!ACPIDispatchIrp:
f7403f70 55 push ebp
1: kd> kc
00 ACPI!ACPIDispatchIrp
01 nt!IofCallDriver
02 i8042prt!I8xSendIrpSynchronously
03 i8042prt!I8xPnP
04 nt!IofCallDriver
05 mouclass!MouseSendIrpSynchronously
06 mouclass!MousePnP
07 nt!IofCallDriver
08 nt!IopSynchronousCall
09 nt!IopStartDevice
0a nt!PipProcessStartPhase1
0b nt!PipProcessDevNodeTree
0c nt!PiProcessStartSystemDevices
0d nt!PipDeviceActionWorker
0e nt!ExpWorkerThread
0f nt!PspSystemThreadStartup
10 nt!KiThreadStartup
1: kd> dv
DeviceObject = 0x89cb4c98 Device for "\Driver\ACPI"
Irp = 0x89a36e70
removeEvent = struct _KEVENT
dispatchTable = 0xf7403f70
deviceExtension = 0x00000008
status = ACPIInternalGetDispatchTable(
DeviceObject,
&deviceExtension,
&dispatchTable
);
1: kd> p
eax=00000000 ebx=89a36e70 ecx=00000000 edx=f78ee900 esi=89a36f4c edi=89cb4c98
eip=f7403f8f esp=f78ee8f4 ebp=f78ee918 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!ACPIDispatchIrp+0x1f:
f7403f8f 8b4dfc mov ecx,dword ptr [ebp-4] ss:0010:f78ee914=89df4a68
1: kd> dv
DeviceObject = 0x89cb4c98 Device for "\Driver\ACPI"
Irp = 0x89a36e70
removeEvent = struct _KEVENT
dispatchTable = 0xf74381cc
deviceExtension = 0x89df4a68
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!IRP_DISPATCH_TABLE *)0xf74381cc)
((ACPI!IRP_DISPATCH_TABLE *)0xf74381cc) : 0xf74381cc [Type: IRP_DISPATCH_TABLE *]
+0x000\] CreateClose : 0xf7403530 \[Type: long (\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x004\] DeviceControl : 0xf7429a84 \[Type: long (\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x008\] PnpStartDevice : 0xf743f2b0 \[Type: long (\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x00c\] Pnp : 0xf745b138 \[Type: long (\*\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x010\] Power : 0xf7438118 \[Type: long (\*\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x014\] SystemControl : 0xf7403358 \[Type: long (\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x018\] Other : 0xf7403358 \[Type: long (\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x01c\] Worker : 0x0 \[Type: void (\*)(_DEVICE_EXTENSION \*,unsigned long)
1: kd> u f743f2b0
ACPI!ACPIBusIrpStartDevice [d:\srv03rtm\base\busdrv\acpi\driver\nt\bus.c @ 3372]:
f743f2b0 55 push ebp
f743f2b1 8bec mov ebp,esp
f743f2b3 53 push ebx
f743f2b4 8b5d0c mov ebx,dword ptr [ebp+0Ch]
f743f2b7 56 push esi
f743f2b8 8b3534b042f7 mov esi,dword ptr [ACPI!_imp__KeGetCurrentIrql (f742b034)]
f743f2be 57 push edi
f743f2bf 8b7b60 mov edi,dword ptr [ebx+60h]
1: kd> t
Breakpoint 5 hit
eax=00000002 ebx=89a36e00 ecx=89df4b84 edx=00000000 esi=f743f2b0 edi=00000000
eip=f743f2b0 esp=f78ee8e8 ebp=f78ee918 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!ACPIBusIrpStartDevice:
f743f2b0 55 push ebp
1: kd> kc
00 ACPI!ACPIBusIrpStartDevice
01 ACPI!ACPIDispatchIrp
02 nt!IofCallDriver
03 i8042prt!I8xSendIrpSynchronously
04 i8042prt!I8xPnP
05 nt!IofCallDriver
06 mouclass!MouseSendIrpSynchronously
07 mouclass!MousePnP
08 nt!IofCallDriver
09 nt!IopSynchronousCall
0a nt!IopStartDevice
0b nt!PipProcessStartPhase1
0c nt!PipProcessDevNodeTree
0d nt!PiProcessStartSystemDevices
0e nt!PipDeviceActionWorker
0f nt!ExpWorkerThread
10 nt!PspSystemThreadStartup
11 nt!KiThreadStartup
1: kd> dv
DeviceObject = 0x89cb4c98 Device for "\Driver\ACPI"
Irp = 0x89a36e70
1: kd> dv
DeviceObject = 0x89cb4c98 Device for "\Driver\ACPI"
SuppliedList = 0xe1372198
CallBack = 0xf73fe4d8
CallBackContext = 0x89a36e70
Irp = 0x89a36e70
crsObject = 0x00000346
resSize = 8
deviceExtension = 0x89cb4c98
oldIrql = 0xe1 ''
crsData = struct _ObjData
resList = 0x00000346
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_DEVICE_OBJECT *)0x89cb4c98)
((ACPI!_DEVICE_OBJECT *)0x89cb4c98) : 0x89cb4c98 : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT *]
\
Flags : 0x1040
UpperDevices : Immediately above is Device for "\Driver\i8042prt" [at 0x89a73c38]
LowerDevices
Driver : 0x89db5530 : Driver "\Driver\ACPI" [Type: _DRIVER_OBJECT *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((ACPI!_DEVICE_OBJECT *)0x89cb4c98))
(*((ACPI!_DEVICE_OBJECT *)0x89cb4c98)) : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT]
+0x000\] Type : 3 \[Type: short
+0x002\] Size : 0xb8 \[Type: unsigned short
+0x004\] ReferenceCount : 0 \[Type: long
+0x008\] DriverObject : 0x89db5530 : Driver "\\Driver\\ACPI" \[Type: _DRIVER_OBJECT \*
+0x00c\] NextDevice : 0x89db94e8 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] AttachedDevice : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x014\] CurrentIrp : 0x0 \[Type: _IRP \*
+0x018\] Timer : 0x0 \[Type: _IO_TIMER \*
+0x01c\] Flags : 0x1040 \[Type: unsigned long
+0x020\] Characteristics : 0x80 \[Type: unsigned long
+0x024\] Vpb : 0x0 \[Type: _VPB \*
+0x028\] DeviceExtension : 0x89df4a68 \[Type: void \*
+0x02c\] DeviceType : 0x32 \[Type: unsigned long
+0x030\] StackSize : 4 \[Type: char
+0x034\] Queue \[Type: __unnamed
+0x05c\] AlignmentRequirement : 0x0 \[Type: unsigned long
+0x060\] DeviceQueue \[Type: _KDEVICE_QUEUE
+0x074\] Dpc \[Type: _KDPC
+0x094\] ActiveThreadCount : 0x0 \[Type: unsigned long
+0x098\] SecurityDescriptor : 0xe12a6f70 \[Type: void \*
+0x09c\] DeviceLock \[Type: _KEVENT
+0x0ac\] SectorSize : 0x0 \[Type: unsigned short
+0x0ae\] Spare1 : 0x1 \[Type: unsigned short
+0x0b0\] DeviceObjectExtension : 0x89cb4d50 \[Type: _DEVOBJ_EXTENSION \*
+0x0b4\] Reserved : 0x0 \[Type: void \*
1: kd> dt _DEVICE_EXTENSION 0x89df4a68
nt!_DEVICE_EXTENSION
+0x000 DeviceObject : 0x00000060 _DEVICE_OBJECT
+0x004 DriverObject : 0x05402000 _DRIVER_OBJECT
+0x008 InterfaceType : 0x5f534750 (No matching name)
+0x00c BusNumber : 0
+0x010 FirmwareList : 0xf74381cc _FIRMWARE_CONFIGURATION
1: kd> dt acpi!_DEVICE_EXTENSION 0x89df4a68
+0x000 Flags : 0x05402000`00000060
+0x000 UFlags : __unnamed
+0x008 Signature : 0x5f534750
+0x00c DebugFlags : 0
+0x010 DispatchTable : 0xf74381cc IRP_DISPATCH_TABLE
+0x014 WorkContext : WORK_QUEUE_CONTEXT
+0x014 Fdo : _FDO_DEVICE_EXTENSION
+0x014 Filter : _FILTER_DEVICE_EXTENSION
+0x014 Pdo : _PDO_DEVICE_EXTENSION
+0x058 WorkQueue : EXTENSION_WORKER
+0x058 Button : BUTTON_EXTENSION
+0x058 Thermal : THERMAL_EXTENSION
+0x058 LinkNode : LINK_NODE_EXTENSION
+0x058 Dock : DOCK_EXTENSION
+0x058 Processor : _PROCESSOR_DEVICE_EXTENSION
+0x088 DeviceState : 0 ( Stopped )
+0x08c PreviousState : 0 ( Stopped )
+0x090 PowerInfo : _ACPI_POWER_INFO
+0x10c DeviceID : 0x89db9138 "ACPI\VMW0003"
+0x10c Address : 0x89db9138
+0x110 InstanceID : (null)
+0x114 ResourceList : (null)
+0x118 PnpResourceList : (null)
+0x11c OutstandingIrpCount : 0n2
+0x120 ReferenceCount : 0n4
+0x124 HibernatePathCount : 0n0
+0x128 RemoveEvent : (null)
+0x12c AcpiObject : 0x89da6b54 _NSObj
+0x130 DeviceObject : 0x89cb4c98 _DEVICE_OBJECT
+0x134 TargetDeviceObject : 0x8999eed0 _DEVICE_OBJECT
+0x138 PhysicalDeviceObject : 0x89cb4c98 _DEVICE_OBJECT
+0x13c ParentExtension : 0x89db46a0 _DEVICE_EXTENSION
+0x140 ChildDeviceList : _LIST_ENTRY [ 0x89df4ba8 - 0x89df4ba8 ]
+0x148 SiblingDeviceList : _LIST_ENTRY [ 0x89df4a48 - 0x89df4d18 ]
+0x150 EjectDeviceHead : _LIST_ENTRY [ 0x89df4bb8 - 0x89df4bb8 ]
+0x158 EjectDeviceList : _LIST_ENTRY [ 0x89df4bc0 - 0x89df4bc0 ]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_NSObj *)0x89da6b54)
((ACPI!_NSObj *)0x89da6b54) : 0x89da6b54 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x89da6278 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x89da6b98 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x53554f4d \[Type: unsigned long
+0x014\] hOwner : 0x89da3330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x89da6b10 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x89df4a68 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
PDEVICE_EXTENSION deviceExtension = ACPIInternalGetDeviceExtension(DeviceObject);
PNSOBJ acpiObject = deviceExtension->AcpiObject;
1: kd> dt PNSOBJ
ACPI!PNSOBJ
Ptr32 +0x000 list : _List
+0x008 pnsParent : Ptr32 _NSObj
+0x00c pnsFirstChild : Ptr32 _NSObj
+0x010 dwNameSeg : Uint4B
+0x014 hOwner : Ptr32 Void
+0x018 pnsOwnedNext : Ptr32 _NSObj
+0x01c ObjData : _ObjData
+0x030 Context : Ptr32 Void
+0x034 dwRefCount : Uint4B
//
// Can we program this device? That is there a _CRS and an _SRS child?
//
crsObject = ACPIAmliGetNamedChild( acpiObject, PACKED_CRS );
1: kd> p
eax=89da6c90 ebx=00000000 ecx=5352435f edx=00000000 esi=e1372198 edi=89da6b54
eip=f7408c43 esp=f78ee894 ebp=f78ee8bc 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!ACPIInitStartDevice+0x5b:
f7408c43 685f535253 push 5352535Fh
1: kd> dt PNSOBJ 89da6c90
ACPI!PNSOBJ
0x89da6c00
+0x000 list : _List
+0x008 pnsParent : 0x89da6b54 _NSObj
+0x00c pnsFirstChild : (null)
+0x010 dwNameSeg : 0x4449435f
+0x014 hOwner : 0x89da3330 Void
+0x018 pnsOwnedNext : 0x89da6b98 _NSObj
+0x01c ObjData : _ObjData
+0x030 Context : (null)
+0x034 dwRefCount : 0
1: kd> kc
00 ACPI!ACPIDeviceInternalDeviceRequest
01 ACPI!ACPIInitStartDevice
02 ACPI!ACPIBusIrpStartDevice
03 ACPI!ACPIDispatchIrp
04 nt!IofCallDriver
05 i8042prt!I8xSendIrpSynchronously
06 i8042prt!I8xPnP
07 nt!IofCallDriver
08 mouclass!MouseSendIrpSynchronously
09 mouclass!MousePnP
0a nt!IofCallDriver
0b nt!IopSynchronousCall
0c nt!IopStartDevice
0d nt!PipProcessStartPhase1
0e nt!PipProcessDevNodeTree
0f nt!PiProcessStartSystemDevices
10 nt!PipDeviceActionWorker
11 nt!ExpWorkerThread
12 nt!PspSystemThreadStartup
13 nt!KiThreadStartup
1: kd> dv
DeviceExtension = 0x89df4a68
DeviceState = PowerDeviceD0 (0n1)
CallBack = 0xf73fe4d8
CallBackContext = 0x89a36e70
Flags = 4
1: kd> kc
00 ACPI!ACPIDeviceInitializePowerRequest
01 ACPI!ACPIDeviceInternalDeviceRequest
02 ACPI!ACPIInitStartDevice
03 ACPI!ACPIBusIrpStartDevice
04 ACPI!ACPIDispatchIrp
05 nt!IofCallDriver
06 i8042prt!I8xSendIrpSynchronously
07 i8042prt!I8xPnP
08 nt!IofCallDriver
09 mouclass!MouseSendIrpSynchronously
0a mouclass!MousePnP
0b nt!IofCallDriver
0c nt!IopSynchronousCall
0d nt!IopStartDevice
0e nt!PipProcessStartPhase1
0f nt!PipProcessDevNodeTree
10 nt!PiProcessStartSystemDevices
11 nt!PipDeviceActionWorker
12 nt!ExpWorkerThread
13 nt!PspSystemThreadStartup
14 nt!KiThreadStartup
1: kd> dv
DeviceExtension = 0x89df4a68
Power = union _POWER_STATE
CallBack = 0xf73fe4d8
CallBackContext = 0x89a36e70
PowerAction = PowerActionNone (0n0)
RequestType = AcpiPowerRequestDevice (0n0)
Flags = 4
oldIrql = 0xf7 ''
1: kd> u f73fe4d8
ACPI!ACPIBusIrpStartDeviceCompletion [d:\srv03rtm\base\busdrv\acpi\driver\nt\bus.c @ 3461]:
f73fe4d8 55 push ebp
f73fe4d9 8bec mov ebp,esp
f73fe4db 53 push ebx
f73fe4dc 8b5d10 mov ebx,dword ptr [ebp+10h]
f73fe4df 85db test ebx,ebx
f73fe4e1 56 push esi
f73fe4e2 8b7508 mov esi,dword ptr [ebp+8]
f73fe4e5 57 push edi
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_DEVICE_EXTENSION *)0x89df4a68)
((ACPI!_DEVICE_EXTENSION *)0x89df4a68) : 0x89df4a68 [Type: _DEVICE_EXTENSION *]
+0x000\] Flags : 0x540200000000060 \[Type: unsigned __int64
+0x000\] UFlags \[Type: __unnamed
+0x008\] Signature : 0x5f534750 \[Type: unsigned long
+0x00c\] DebugFlags : 0x0 \[Type: unsigned long
+0x010\] DispatchTable : 0xf74381cc \[Type: IRP_DISPATCH_TABLE \*
+0x014\] WorkContext \[Type: WORK_QUEUE_CONTEXT
+0x014\] Fdo \[Type: _FDO_DEVICE_EXTENSION
+0x014\] Filter \[Type: _FILTER_DEVICE_EXTENSION
+0x014\] Pdo \[Type: _PDO_DEVICE_EXTENSION
+0x058\] WorkQueue \[Type: EXTENSION_WORKER
+0x058\] Button \[Type: BUTTON_EXTENSION
+0x058\] Thermal \[Type: THERMAL_EXTENSION
+0x058\] LinkNode \[Type: LINK_NODE_EXTENSION
+0x058\] Dock \[Type: DOCK_EXTENSION
+0x058\] Processor \[Type: _PROCESSOR_DEVICE_EXTENSION
+0x088\] DeviceState : Stopped (0) \[Type: _ACPI_DEVICE_STATE
+0x08c\] PreviousState : Stopped (0) \[Type: _ACPI_DEVICE_STATE
+0x090\] PowerInfo \[Type: _ACPI_POWER_INFO
+0x10c\] DeviceID : 0x89db9138 : 0x41 \[Type: unsigned char \*
+0x10c\] Address : 0x89db9138 \[Type: unsigned long
+0x110\] InstanceID : 0x0 \[Type: unsigned char \*
+0x114\] ResourceList : 0x0 \[Type: _CM_RESOURCE_LIST \*
+0x118\] PnpResourceList : 0x0 \[Type: _ObjData \*
+0x11c\] OutstandingIrpCount : 2 \[Type: long
+0x120\] ReferenceCount : 4 \[Type: long
+0x124\] HibernatePathCount : 0 \[Type: long
+0x128\] RemoveEvent : 0x0 \[Type: _KEVENT \*
+0x12c\] AcpiObject : 0x89da6b54 \[Type: _NSObj \*
+0x130\] DeviceObject : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x134\] TargetDeviceObject : 0x8999eed0 : Device for "\\Driver\\isapnp" \[Type: _DEVICE_OBJECT \*
+0x138\] PhysicalDeviceObject : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x13c\] ParentExtension : 0x89db46a0 \[Type: _DEVICE_EXTENSION \*
+0x140\] ChildDeviceList \[Type: _LIST_ENTRY
+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY
+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY
+0x158\] EjectDeviceList \[Type: _LIST_ENTRY
InitializeListHead( &(powerRequest->ListEntry) );
1: kd> p
eax=89a36e70 ebx=00000000 ecx=00000000 edx=004d0022 esi=89d38fb0 edi=89df4a68
eip=f7402a30 esp=f78ee844 ebp=f78ee850 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!ACPIDeviceInitializePowerRequest+0x50:
f7402a30 8d4608 lea eax,[esi+8]
1: kd> dt ACPI_POWER_REQUEST 89d38fb0
+0x000 ListEntry : _LIST_ENTRY [ 0x0 - 0x0 ]
+0x008 SerialListEntry : _LIST_ENTRY [ 0x0 - 0x0 ]
+0x010 Signature : 0
+0x014 DeviceExtension : (null)
+0x018 RequestType : 0 ( AcpiPowerRequestDevice )
+0x01c FailedOnce : 0 ''
+0x020 u : __unnamed
+0x028 CallBack : 0xf73fe4d8 void ACPI!ACPIBusIrpStartDeviceCompletion+0
+0x02c Context : 0x89a36e70 Void
+0x030 WorkDone : 0
+0x034 NextWorkDone : 0
+0x038 ResultData : _ObjData
+0x04c Status : 0n0
//
// Add the request to the right place in the lists. Note that this function
// must be called with the PowerQueueLock being held.
//
ACPIDeviceInternalQueueRequest(
DeviceExtension,
powerRequest,
Flags
);
1: kd> t
eax=00000001 ebx=00000000 ecx=00000004 edx=00000000 esi=89d38fb0 edi=89df4a68
eip=f74007e8 esp=f78ee834 ebp=f78ee850 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!ACPIDeviceInternalQueueRequest:
f74007e8 55 push ebp
1: kd> dv
DeviceExtension = 0x89df4a68
PowerRequest = 0x89d38fb0
Flags = 4
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_ACPI_POWER_REQUEST *)0x89d38fb0)
((ACPI!_ACPI_POWER_REQUEST *)0x89d38fb0) : 0x89d38fb0 [Type: _ACPI_POWER_REQUEST *]
+0x000\] ListEntry \[Type: _LIST_ENTRY
+0x008\] SerialListEntry \[Type: _LIST_ENTRY
+0x010\] Signature : 0x5f534750 \[Type: unsigned long
+0x014\] DeviceExtension : 0x89df4a68 \[Type: _DEVICE_EXTENSION \*
+0x018\] RequestType : AcpiPowerRequestDevice (0) \[Type: ACPI_POWER_REQUEST_TYPE
+0x01c\] FailedOnce : 0x0 \[Type: unsigned char
+0x020\] u \[Type: __unnamed
+0x028\] CallBack : 0xf73fe4d8 \[Type: void (\*)()
+0x02c\] Context : 0x89a36e70 \[Type: void \*
+0x030\] WorkDone : 0x3 \[Type: unsigned long
+0x034\] NextWorkDone : 0x0 \[Type: unsigned long
+0x038\] ResultData \[Type: _ObjData
+0x04c\] Status : 0 \[Type: long
} else {
InsertTailList(
&(AcpiPowerQueueList),
&(PowerRequest->ListEntry)
);
1: kd> x acpi!AcpiPowerQueueList
f743b5e8 ACPI!AcpiPowerQueueList = struct _LIST_ENTRY [ 0xf743b5e8 - 0xf743b5e8 ]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((ACPI!_LIST_ENTRY *)0xfffffffff743b5e8))
(*((ACPI!_LIST_ENTRY *)0xfffffffff743b5e8)) [Type: _LIST_ENTRY]
+0x000\] Flink : 0xf743b5e8 \[Type: _LIST_ENTRY \*
+0x004\] Blink : 0xf743b5e8 \[Type: _LIST_ENTRY \*
1: kd> p
eax=f743b5e8 ebx=00000000 ecx=89d38fb8 edx=89d38fb0 esi=89d38fb0 edi=89df4a68
eip=f7400862 esp=f78ee830 ebp=f78ee830 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!ACPIDeviceInternalQueueRequest+0x7a:
f7400862 eb13 jmp ACPI!ACPIDeviceInternalQueueRequest+0x8f (f7400877)
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((ACPI!_LIST_ENTRY *)0xfffffffff743b5e8))
(*((ACPI!_LIST_ENTRY *)0xfffffffff743b5e8)) [Type: _LIST_ENTRY]
+0x000\] Flink : 0x89d38fb0 \[Type: _LIST_ENTRY \*
+0x004\] Blink : 0x89d38fb0 \[Type: _LIST_ENTRY \*
1: kd> dt ACPI_POWER_REQUEST 0x89d38fb0
+0x000 ListEntry : _LIST_ENTRY [ 0xf743b5e8 - 0xf743b5e8 ]
+0x008 SerialListEntry : _LIST_ENTRY [ 0x89df4b68 - 0x89df4b68 ]
+0x010 Signature : 0x5f534750
+0x014 DeviceExtension : 0x89df4a68 _DEVICE_EXTENSION
+0x018 RequestType : 0 ( AcpiPowerRequestDevice )
+0x01c FailedOnce : 0 ''
+0x020 u : __unnamed
+0x028 CallBack : 0xf73fe4d8 void ACPI!ACPIBusIrpStartDeviceCompletion+0
+0x02c Context : 0x89a36e70 Void
+0x030 WorkDone : 3
+0x034 NextWorkDone : 0
+0x038 ResultData : _ObjData
+0x04c Status : 0n0
1: kd> p
Breakpoint 9 hit
eax=00000001 ebx=f73fe4d8 ecx=00000000 edx=80b18958 esi=89d38fb0 edi=89df4a68
eip=f73fe4d8 esp=f78aef34 ebp=f78aef50 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
ACPI!ACPIBusIrpStartDeviceCompletion:
f73fe4d8 55 push ebp
1: kd> kc
00 ACPI!ACPIBusIrpStartDeviceCompletion
01 ACPI!ACPIDeviceCompleteRequest
02 ACPI!ACPIDevicePowerProcessGenericPhase
03 ACPI!ACPIDevicePowerDpc
04 nt!KiRetireDpcList
05 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
06 0x0
1: kd> dv
DeviceExtension = 0x89df4a68
Context = 0x89a36e70
Status = 0n0
minorFunction = 0x68 'h'
1: kd> dt _irp 0x89a36e70
hal!_IRP
+0x000 Type : 0n6
+0x002 Size : 0x190
+0x004 MdlAddress : (null)
+0x008 Flags : 0
+0x00c AssociatedIrp : __unnamed
+0x010 ThreadListEntry : _LIST_ENTRY [ 0x89dcffb8 - 0x89dcffb8 ]
+0x018 IoStatus : _IO_STATUS_BLOCK
+0x020 RequestorMode : 0 ''
+0x021 PendingReturned : 0 ''
+0x022 StackCount : 6 ''
+0x023 CurrentLocation : 4 ''
+0x024 Cancel : 0 ''
+0x025 CancelIrql : 0 ''
+0x026 ApcEnvironment : 0 ''
+0x027 AllocationFlags : 0x4 ''
+0x028 UserIosb : 0xf78eea6c _IO_STATUS_BLOCK
+0x02c UserEvent : 0xf78eea5c _KEVENT
+0x030 Overlay : __unnamed
+0x038 CancelRoutine : (null)
+0x03c UserBuffer : (null)
+0x040 Tail : __unnamed
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((halmacpi!_IO_STATUS_BLOCK *)0xffffffff89a36e88))
(*((halmacpi!_IO_STATUS_BLOCK *)0xffffffff89a36e88)) [Type: _IO_STATUS_BLOCK]
+0x000\] Status : -1073741637 \[Type: long
+0x000\] Pointer : 0xc00000bb \[Type: void \*
+0x004\] Information : 0x0 \[Type: unsigned long
irp->IoStatus.Status = Status;
if (NT_SUCCESS(Status)) {
DeviceExtension->DeviceState = Started;
}
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_DEVICE_EXTENSION *)0x89df4a68)
((ACPI!_DEVICE_EXTENSION *)0x89df4a68) : 0x89df4a68 [Type: _DEVICE_EXTENSION *]
+0x000\] Flags : 0x540200000000060 \[Type: unsigned __int64
+0x000\] UFlags \[Type: __unnamed
+0x008\] Signature : 0x5f534750 \[Type: unsigned long
+0x00c\] DebugFlags : 0x0 \[Type: unsigned long
+0x010\] DispatchTable : 0xf74381cc \[Type: IRP_DISPATCH_TABLE \*
+0x014\] WorkContext \[Type: WORK_QUEUE_CONTEXT
+0x014\] Fdo \[Type: _FDO_DEVICE_EXTENSION
+0x014\] Filter \[Type: _FILTER_DEVICE_EXTENSION
+0x014\] Pdo \[Type: _PDO_DEVICE_EXTENSION
+0x058\] WorkQueue \[Type: EXTENSION_WORKER
+0x058\] Button \[Type: BUTTON_EXTENSION
+0x058\] Thermal \[Type: THERMAL_EXTENSION
+0x058\] LinkNode \[Type: LINK_NODE_EXTENSION
+0x058\] Dock \[Type: DOCK_EXTENSION
+0x058\] Processor \[Type: _PROCESSOR_DEVICE_EXTENSION
+0x088\] DeviceState : Started (2) \[Type: _ACPI_DEVICE_STATE
1: kd> p
eax=00000000 ebx=f73fe4d8 ecx=00000041 edx=00000000 esi=89d38fb0 edi=89df4a68
eip=f740221f esp=f78aef44 ebp=f78aef50 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!ACPIDeviceCompleteRequest+0xc3:
f740221f bbf8b543f7 mov ebx,offset ACPI!AcpiPowerQueueLock (f743b5f8)
1: kd> dv
PowerRequest = 0x89d38fb0
oldIrql = 0x89 ''
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_ACPI_POWER_REQUEST *)0x89d38fb0)
((ACPI!_ACPI_POWER_REQUEST *)0x89d38fb0) : 0x89d38fb0 [Type: _ACPI_POWER_REQUEST *]
+0x000\] ListEntry \[Type: _LIST_ENTRY
+0x008\] SerialListEntry \[Type: _LIST_ENTRY
+0x010\] Signature : 0x5f534750 \[Type: unsigned long
+0x014\] DeviceExtension : 0x89df4a68 \[Type: _DEVICE_EXTENSION \*
+0x018\] RequestType : AcpiPowerRequestDevice (0) \[Type: ACPI_POWER_REQUEST_TYPE
+0x01c\] FailedOnce : 0x0 \[Type: unsigned char
+0x020\] u \[Type: __unnamed
+0x028\] CallBack : 0xf73fe4d8 \[Type: void (\*)()
+0x02c\] Context : 0x89a36e70 \[Type: void \*
+0x030\] WorkDone : 0x0 \[Type: unsigned long
+0x034\] NextWorkDone : 0x8 \[Type: unsigned long
+0x038\] ResultData \[Type: _ObjData
+0x04c\] Status : 0 \[Type: long
1: kd> g
Breakpoint 12 hit
eax=f743eb5c ebx=89df4a7c ecx=89df4a7c edx=80010031 esi=80bf5cbc edi=89dd03a0
eip=f743eb5c esp=f78e6d84 ebp=f78e6dac iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ACPIBusIrpStartDeviceWorker:
f743eb5c 55 push ebp
1: kd> kc
00 ACPI!ACPIBusIrpStartDeviceWorker
01 nt!ExpWorkerThread
02 nt!PspSystemThreadStartup
03 nt!KiThreadStartup
1: kd> dv
Context = 0x89df4a7c
deviceExtension = 0x00000008
minorFunction = 0x7c '|'
1: kd> p
eax=f743eb5c ebx=89df4a7c ecx=89df4a7c edx=80010031 esi=80bf5cbc edi=89dd03a0
eip=f743eb61 esp=f78e6d78 ebp=f78e6d80 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ACPIBusIrpStartDeviceWorker+0x5:
f743eb61 8b3534b042f7 mov esi,dword ptr [ACPI!_imp__KeGetCurrentIrql (f742b034)] ds:0023:f742b034={hal!KeGetCurrentIrql (804edc6c)}
1: kd> p
eax=00000000 ebx=89df4a7c ecx=89df4a7c edx=80010031 esi=804edc6c edi=89dd03a0
eip=f743eb97 esp=f78e6d74 ebp=f78e6d80 iopl=0 nv up ei ng nz ac pe cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000297
ACPI!ACPIBusIrpStartDeviceWorker+0x3b:
f743eb97 8b7508 mov esi,dword ptr [ebp+8] ss:0010:f78e6d88=89df4a7c
1: kd> p
eax=00000000 ebx=89df4a7c ecx=89df4a7c edx=80010031 esi=89df4a7c edi=89dd03a0
eip=f743eb9a esp=f78e6d74 ebp=f78e6d80 iopl=0 nv up ei ng nz ac pe cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000297
ACPI!ACPIBusIrpStartDeviceWorker+0x3e:
f743eb9a ff7610 push dword ptr [esi+10h] ds:0023:89df4a8c=89cb4c98
1: kd> p
eax=89df4a68 ebx=89df4a7c ecx=00000000 edx=00000000 esi=89df4a7c edi=89dd03a0
eip=f743eba2 esp=f78e6d74 ebp=f78e6d80 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!ACPIBusIrpStartDeviceWorker+0x46:
f743eba2 8b7614 mov esi,dword ptr [esi+14h] ds:0023:89df4a90=89a36e70
1: kd> dv
Context = 0x89df4a7c
deviceExtension = 0x89df4a7c
minorFunction = 0x7c '|'
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_DEVICE_EXTENSION *)0x89df4a7c)
((ACPI!_DEVICE_EXTENSION *)0x89df4a7c) : 0x89df4a7c [Type: _DEVICE_EXTENSION *]
+0x000\] Flags : 0x80bf5ccc00000000 \[Type: unsigned __int64
+0x000\] UFlags \[Type: __unnamed
+0x008\] Signature : 0xf743eb5c \[Type: unsigned long
+0x00c\] DebugFlags : 0x89df4a7c \[Type: unsigned long
+0x010\] DispatchTable : 0x89cb4c98 \[Type: IRP_DISPATCH_TABLE \*
+0x014\] WorkContext \[Type: WORK_QUEUE_CONTEXT
+0x014\] Fdo \[Type: _FDO_DEVICE_EXTENSION
+0x014\] Filter \[Type: _FILTER_DEVICE_EXTENSION
+0x014\] Pdo \[Type: _PDO_DEVICE_EXTENSION
+0x058\] WorkQueue \[Type: EXTENSION_WORKER
+0x058\] Button \[Type: BUTTON_EXTENSION
+0x058\] Thermal \[Type: THERMAL_EXTENSION
+0x058\] LinkNode \[Type: LINK_NODE_EXTENSION
+0x058\] Dock \[Type: DOCK_EXTENSION
+0x058\] Processor \[Type: _PROCESSOR_DEVICE_EXTENSION
+0x088\] DeviceState : Stopped (0) \[Type: _ACPI_DEVICE_STATE
+0x08c\] PreviousState : Stopped (0) \[Type: _ACPI_DEVICE_STATE
+0x090\] PowerInfo \[Type: _ACPI_POWER_INFO
+0x10c\] DeviceID : 0x4 : Unable to read memory at Address 0x4 \[Type: unsigned char \*
+0x10c\] Address : 0x4 \[Type: unsigned long
+0x110\] InstanceID : 0x0 \[Type: unsigned char \*
+0x114\] ResourceList : 0x0 \[Type: _CM_RESOURCE_LIST \*
+0x118\] PnpResourceList : 0x89da6b54 \[Type: _ObjData \*
+0x11c\] OutstandingIrpCount : -1983165288 \[Type: long
+0x120\] ReferenceCount : -1986400560 \[Type: long
+0x124\] HibernatePathCount : -1983165288 \[Type: long
+0x128\] RemoveEvent : 0x89db46a0 \[Type: _KEVENT \*
+0x12c\] AcpiObject : 0x89df4ba8 \[Type: _NSObj \*
+0x130\] DeviceObject : 0x89df4ba8 : Device for {...} \[Type: _DEVICE_OBJECT \*
+0x134\] TargetDeviceObject : 0x89df4a48 : Device for {...} \[Type: _DEVICE_OBJECT \*
+0x138\] PhysicalDeviceObject : 0x89df4d18 : Device for {...} \[Type: _DEVICE_OBJECT \*
+0x13c\] ParentExtension : 0x89df4bb8 \[Type: _DEVICE_EXTENSION \*
+0x140\] ChildDeviceList \[Type: _LIST_ENTRY
+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY
+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY
+0x158\] EjectDeviceList \[Type: _LIST_ENTRY
1: kd> dt WORK_QUEUE_CONTEXT 0x89df4a7c
ACPI!WORK_QUEUE_CONTEXT
+0x000 Item : _WORK_QUEUE_ITEM
+0x010 DeviceObject : 0x89cb4c98 _DEVICE_OBJECT
+0x014 Irp : 0x89a36e70 _IRP
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_DEVICE_OBJECT *)0x89cb4c98)
((ACPI!_DEVICE_OBJECT *)0x89cb4c98) : 0x89cb4c98 : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT *]
\
Flags : 0x1040
UpperDevices : Immediately above is Device for "\Driver\i8042prt" [at 0x89a73c38]
LowerDevices
Driver : 0x89db5530 : Driver "\Driver\ACPI" [Type: _DRIVER_OBJECT *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((ACPI!_DEVICE_OBJECT *)0x89cb4c98))
(*((ACPI!_DEVICE_OBJECT *)0x89cb4c98)) : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT]
+0x000\] Type : 3 \[Type: short
+0x002\] Size : 0xb8 \[Type: unsigned short
+0x004\] ReferenceCount : 0 \[Type: long
+0x008\] DriverObject : 0x89db5530 : Driver "\\Driver\\ACPI" \[Type: _DRIVER_OBJECT \*
+0x00c\] NextDevice : 0x89db94e8 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] AttachedDevice : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x014\] CurrentIrp : 0x0 \[Type: _IRP \*
+0x018\] Timer : 0x0 \[Type: _IO_TIMER \*
+0x01c\] Flags : 0x1040 \[Type: unsigned long
+0x020\] Characteristics : 0x80 \[Type: unsigned long
+0x024\] Vpb : 0x0 \[Type: _VPB \*
+0x028\] DeviceExtension : 0x89df4a68 \[Type: void \*
+0x02c\] DeviceType : 0x32 \[Type: unsigned long
+0x030\] StackSize : 4 \[Type: char
+0x034\] Queue \[Type: __unnamed
+0x05c\] AlignmentRequirement : 0x0 \[Type: unsigned long
+0x060\] DeviceQueue \[Type: _KDEVICE_QUEUE
+0x074\] Dpc \[Type: _KDPC
+0x094\] ActiveThreadCount : 0x0 \[Type: unsigned long
+0x098\] SecurityDescriptor : 0xe12a6f70 \[Type: void \*
+0x09c\] DeviceLock \[Type: _KEVENT
+0x0ac\] SectorSize : 0x0 \[Type: unsigned short
+0x0ae\] Spare1 : 0x1 \[Type: unsigned short
+0x0b0\] DeviceObjectExtension : 0x89cb4d50 \[Type: _DEVOBJ_EXTENSION \*
+0x0b4\] Reserved : 0x0 \[Type: void \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_IRP *)0x89a36e70)
((ACPI!_IRP *)0x89a36e70) : 0x89a36e70 [Type: _IRP *]
\
IoStack : Size = 6, Current IRP_MJ_PNP / IRP_MN_START_DEVICE for Device for "\Driver\ACPI"
CurrentThread : 0x89dcfda0 [Type: _ETHREAD *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((ACPI!_IRP *)0x89a36e70))
(*((ACPI!_IRP *)0x89a36e70)) [Type: _IRP]
+0x000\] Type : 6 \[Type: short
+0x002\] Size : 0x190 \[Type: unsigned short
+0x004\] MdlAddress : 0x0 \[Type: _MDL \*
+0x008\] Flags : 0x0 \[Type: unsigned long
+0x00c\] AssociatedIrp \[Type: __unnamed
+0x010\] ThreadListEntry \[Type: _LIST_ENTRY
+0x018\] IoStatus \[Type: _IO_STATUS_BLOCK
+0x020\] RequestorMode : 0 \[Type: char
+0x021\] PendingReturned : 0x0 \[Type: unsigned char
+0x022\] StackCount : 6 \[Type: char
+0x023\] CurrentLocation : 4 \[Type: char
+0x024\] Cancel : 0x0 \[Type: unsigned char
+0x025\] CancelIrql : 0x0 \[Type: unsigned char
+0x026\] ApcEnvironment : 0 \[Type: char
+0x027\] AllocationFlags : 0x4 \[Type: unsigned char
+0x028\] UserIosb : 0xf78eea6c \[Type: _IO_STATUS_BLOCK \*
+0x02c\] UserEvent : 0xf78eea5c \[Type: _KEVENT \*
+0x030\] Overlay \[Type: __unnamed
+0x038\] CancelRoutine : 0x0 \[Type: void (\*)(_DEVICE_OBJECT \*,_IRP \*)
+0x03c\] UserBuffer : 0x0 \[Type: void \*
+0x040\] Tail \[Type: __unnamed
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((ACPI!_IO_STATUS_BLOCK *)0x89a36e88))
(*((ACPI!_IO_STATUS_BLOCK *)0x89a36e88)) [Type: _IO_STATUS_BLOCK]
+0x000\] Status : 0 \[Type: long
+0x000\] Pointer : 0x0 \[Type: void \*
+0x004\] Information : 0x0 \[Type: unsigned long
//
// Update the status of the device
//
if (NT_SUCCESS(status)) {
if (IsNsobjPciBus(deviceExtension->AcpiObject)) {
THREAD 89dcfda0 Cid 0004.004c Teb: 00000000 Win32Thread: 00000000 READY on processor 0
IRP List:
89a36e70: (0006,0190) Flags: 00000000 Mdl: 00000000
Not impersonating
DeviceMap e10026b8
Owning Process 89dd5240 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 274648482 Ticks: 15 (0:00:00:00.234)
Context Switch Count 90 IdealProcessor: 0
UserTime 00:00:00.000
KernelTime 00:00:05.015
Stack Init f78ef000 Current f78ee89c Base f78ef000 Limit f78ec000 Call 00000000
Priority 12 BasePriority 12 PriorityDecrement 0 IoPriority 0 PagePriority 0
ChildEBP RetAddr
f78ee8b4 80a440eb nt!KiSwapContext+0x26 (FPO: [Uses EBP] [0,0,4]) [d:\srv03rtm\base\ntos\ke\i386\ctxswap.asm @ 139]
f78ee8ec 80a35ea9 nt!KiSwapThread+0x627 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\ke\thredsup.c @ 2000]
f78ee920 bac89b44 nt!KeWaitForSingleObject+0x2d7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ke\wait.c @ 1161]
f78ee958 bac89f8e i8042prt!I8xSendIrpSynchronously+0xa4 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\pnpi8042\pnp.c @ 231]
f78ee980 80a2675c i8042prt!I8xPnP+0x21a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\pnpi8042\pnp.c @ 347]
f78ee99c f750e509 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
f78ee9c0 f750b91e mouclass!MouseSendIrpSynchronously+0xab (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 1475]
f78eea2c 80a2675c mouclass!MousePnP+0x382 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 4224]
f78eea48 80c95e00 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
f78eea78 80c95f56 nt!IopSynchronousCall+0x1aa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 258]
f78eeabc 80c8f415 nt!IopStartDevice+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 334]
f78eead8 80c94d55 nt!PipProcessStartPhase1+0x9d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 5014]
f78eed24 80c955c0 nt!PipProcessDevNodeTree+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 4648]
f78eed58 80a2deb5 nt!PiProcessStartSystemDevices+0x6e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 6436]
f78eed80 80af2bb9 nt!PipDeviceActionWorker+0x199 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 821]
f78eedac 80d391f0 nt!ExpWorkerThread+0x10f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ex\worker.c @ 1153]
f78eeddc 80b00d52 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]
1: kd> dv
DeviceObject = 0x89cb4c98 Device for "\Driver\ACPI"
Irp = 0x89a36e70
Strict = 0x01 ''
event = struct _KEVENT
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_DEVICE_OBJECT *)0x89cb4c98)
((i8042prt!_DEVICE_OBJECT *)0x89cb4c98) : 0x89cb4c98 : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT *]
\
Flags : 0x1040
UpperDevices : Immediately above is Device for "\Driver\i8042prt" [at 0x89a73c38]
LowerDevices
Driver : 0x89db5530 : Driver "\Driver\ACPI" [Type: _DRIVER_OBJECT *]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((i8042prt!_DEVICE_OBJECT *)0x89cb4c98))
(*((i8042prt!_DEVICE_OBJECT *)0x89cb4c98)) : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT]
+0x000\] Type : 3 \[Type: short
+0x002\] Size : 0xb8 \[Type: unsigned short
+0x004\] ReferenceCount : 0 \[Type: long
+0x008\] DriverObject : 0x89db5530 : Driver "\\Driver\\ACPI" \[Type: _DRIVER_OBJECT \*
+0x00c\] NextDevice : 0x89db94e8 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] AttachedDevice : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x014\] CurrentIrp : 0x0 \[Type: _IRP \*
+0x018\] Timer : 0x0 \[Type: _IO_TIMER \*
+0x01c\] Flags : 0x1040 \[Type: unsigned long
+0x020\] Characteristics : 0x80 \[Type: unsigned long
+0x024\] DoNotUse1 : 0x0 \[Type: void \*
+0x028\] DeviceExtension : 0x89df4a68 \[Type: void \*
+0x02c\] DeviceType : 0x32 \[Type: unsigned long
+0x030\] StackSize : 4 \[Type: char
+0x034\] Queue \[Type: __unnamed
+0x05c\] AlignmentRequirement : 0x0 \[Type: unsigned long
+0x060\] DeviceQueue \[Type: _KDEVICE_QUEUE
+0x074\] Dpc \[Type: _KDPC
+0x094\] ActiveThreadCount : 0x0 \[Type: unsigned long
+0x098\] SecurityDescriptor : 0xe12a6f70 \[Type: void \*
+0x09c\] DeviceLock \[Type: _KEVENT
+0x0ac\] SectorSize : 0x0 \[Type: unsigned short
+0x0ae\] Spare1 : 0x1 \[Type: unsigned short
+0x0b0\] DeviceObjectExtension : 0x89cb4d50 \[Type: _DEVOBJ_EXTENSION \*
+0x0b4\] Reserved : 0x0 \[Type: void \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_DEVOBJ_EXTENSION *)0x89cb4d50)
((i8042prt!_DEVOBJ_EXTENSION *)0x89cb4d50) : 0x89cb4d50 [Type: _DEVOBJ_EXTENSION *]
+0x000\] Type : 13 \[Type: short
+0x002\] Size : 0x0 \[Type: unsigned short
+0x004\] DeviceObject : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
1: kd> dt nt!_DEVOBJ_EXTENSION 0x89cb4d50
+0x000 Type : 0n13
+0x002 Size : 0
+0x004 DeviceObject : 0x89cb4c98 _DEVICE_OBJECT
+0x008 PowerFlags : 0x10
+0x00c Dope : (null)
+0x010 ExtensionFlags : 0x10
+0x014 DeviceNode : 0x89c64918 Void
+0x018 AttachedTo : (null)
+0x01c StartIoCount : 0n0
+0x020 StartIoKey : 0n0
+0x024 StartIoFlags : 0
+0x028 Vpb : (null)
1: kd> dt _device_node 0x89c64918
nt!_DEVICE_NODE
+0x000 Sibling : 0x89c647f0 _DEVICE_NODE
+0x004 Child : (null)
+0x008 Parent : 0x89977288 _DEVICE_NODE
+0x00c LastChild : (null)
+0x010 Level : 5
+0x014 Notify : (null)
+0x018 State : 304 ( DeviceNodeResourcesAssigned )
+0x01c PreviousState : 303 ( DeviceNodeDriversAdded )
+0x020 StateHistory : [20] 301 ( DeviceNodeUninitialized )
+0x070 StateHistoryEntry : 3
+0x074 CompletionStatus : 0n0
+0x078 PendingIrp : (null)
+0x07c Flags : 0xf0
+0x080 UserFlags : 0
+0x084 Problem : 0
+0x088 PhysicalDeviceObject : 0x89cb4c98 _DEVICE_OBJECT
+0x08c ResourceList : 0xe1372198 _CM_RESOURCE_LIST
+0x090 ResourceListTranslated : 0xe1368bf8 _CM_RESOURCE_LIST
+0x094 InstancePath : _UNICODE_STRING "ACPI\VMW0003\4&5289e18&0"
+0x09c ServiceName : _UNICODE_STRING "i8042prt"
+0x0a4 DuplicatePDO : (null)
+0x0a8 ResourceRequirements : 0xe14f46a8 _IO_RESOURCE_REQUIREMENTS_LIST
+0x0ac InterfaceType : 0xffffffff (No matching name)
+0x0b0 BusNumber : 0xfffffff0
+0x0b4 ChildInterfaceType : 0xffffffff (No matching name)
+0x0b8 ChildBusNumber : 0xfffffff0
+0x0bc ChildBusTypeIndex : 0xffff
+0x0be RemovalPolicy : 0x1 ''
+0x0bf HardwareRemovalPolicy : 0x1 ''
+0x0c0 TargetDeviceNotify : _LIST_ENTRY [ 0x89c649d8 - 0x89c649d8 ]
+0x0c8 DeviceArbiterList : _LIST_ENTRY [ 0x89c649e0 - 0x89c649e0 ]
+0x0d0 DeviceTranslatorList : _LIST_ENTRY [ 0x89c649e8 - 0x89c649e8 ]
+0x0d8 NoTranslatorMask : 0
+0x0da QueryTranslatorMask : 0
+0x0dc NoArbiterMask : 0
+0x0de QueryArbiterMask : 0
+0x0e0 OverUsed1 : __unnamed
+0x0e4 OverUsed2 : __unnamed
+0x0e8 BootResources : 0xe1360da8 _CM_RESOURCE_LIST
+0x0ec CapabilityFlags : 0x80
+0x0f0 DockInfo : __unnamed
+0x100 DisableableDepends : 0
+0x104 PendedSetInterfaceState : _LIST_ENTRY [ 0x89c64a1c - 0x89c64a1c ]
+0x10c LegacyBusListEntry : _LIST_ENTRY [ 0x89c64a24 - 0x89c64a24 ]
NTSTATUS
I8xPnP (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
)
{
switch (stack->MinorFunction) {
case IRP_MN_START_DEVICE:
//
// The device is starting.
//
// We cannot touch the device (send it any non pnp irps) until a
// start device has been passed down to the lower drivers.
//
status = I8xSendIrpSynchronously(commonData->TopOfStack, Irp, TRUE);
if (NT_SUCCESS(status) && NT_SUCCESS(Irp->IoStatus.Status)) {
//
// As we are successfully now back from our start device
// we can do work.
ExAcquireFastMutexUnsafe(&Globals.DispatchMutex);
else {
status = I8xMouseStartDevice(
(PPORT_MOUSE_EXTENSION) DeviceObject->DeviceExtension,
stack->Parameters.StartDevice.AllocatedResourcesTranslated
);
}
1: kd> t
Breakpoint 14 hit
eax=89a73c38 ebx=00000000 ecx=bac80374 edx=80010031 esi=89a36e70 edi=89a73cf0
eip=bac8873c esp=f78ee960 ebp=f78ee980 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
i8042prt!I8xMouseStartDevice:
bac8873c 55 push ebp
1: kd> kc
00 i8042prt!I8xMouseStartDevice
01 i8042prt!I8xPnP
02 nt!IofCallDriver
03 mouclass!MouseSendIrpSynchronously
04 mouclass!MousePnP
05 nt!IofCallDriver
06 nt!IopSynchronousCall
07 nt!IopStartDevice
08 nt!PipProcessStartPhase1
09 nt!PipProcessDevNodeTree
0a nt!PiProcessStartSystemDevices
0b nt!PipDeviceActionWorker
0c nt!ExpWorkerThread
0d nt!PspSystemThreadStartup
0e nt!KiThreadStartup
1: kd> dv
MouseExtension = 0x89a73cf0
ResourceList = 0xe1368bf8
status = 0n-1985528592
initializeDataContext = struct _I8042_INITIALIZE_DATA_CONTEXT
self = 0xe1368bf8 Device for {...}
dumpData = unsigned long [1]
Print(DBG_SS_TRACE, ("I8xMouseStartDevice, enter\n"));
1: kd> p
8042: I8xMouseStartDevice, enter
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0)
((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0) : 0x89a73cf0 [Type: _PORT_MOUSE_EXTENSION *]
+0x000\] Self : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x004\] InterruptObject : 0x0 \[Type: _KINTERRUPT \*
+0x008\] InterruptSpinLock : 0x0 \[Type: unsigned long
+0x00c\] TopOfStack : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] PDO : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x018\] RemoveLock \[Type: _IO_REMOVE_LOCK
+0x070\] OutstandingPowerIrp : 0x0 \[Type: _IRP \*
+0x074\] PowerState : PowerDeviceD0 (1) \[Type: _DEVICE_POWER_STATE
+0x078\] SystemState : PowerSystemUnspecified (0) \[Type: _SYSTEM_POWER_STATE
+0x07c\] ShutdownType : PowerActionNone (0) \[Type: POWER_ACTION
+0x080\] InputCount : 0x0 \[Type: unsigned long
+0x084\] EnableCount : 0 \[Type: long
+0x088\] DataConsumptionTimer \[Type: _KTIMER
+0x0b0\] RetriesExceededDpc \[Type: _KDPC
+0x0d0\] ErrorLogDpc \[Type: _KDPC
+0x0f0\] TimeOutDpc \[Type: _KDPC
+0x110\] ResetDpc \[Type: _KDPC
+0x130\] SequenceNumber : 0x0 \[Type: unsigned long
+0x134\] ConnectData \[Type: _CONNECT_DATA
+0x13c\] WmiLibInfo \[Type: _WMILIB_CONTEXT
+0x15c\] CurrentOutput \[Type: _OUTPUT_PACKET
+0x16c\] InterruptDescriptor : No Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
+0x17c\] PnpDeviceState : 0x0 \[Type: unsigned long
+0x180\] ResendCount : 0 \[Type: short
+0x182\] OkayToLogOverflow : 0x0 \[Type: unsigned char
+0x183\] Initialized : 0x0 \[Type: unsigned char
+0x184\] IsIsrActivated : 0x0 \[Type: unsigned char
+0x185\] IsKeyboard : 0x0 \[Type: unsigned char
+0x186\] Started : 0x0 \[Type: unsigned char
+0x188\] MouseAttributes \[Type: _MOUSE_ATTRIBUTES
+0x194\] ResetIrp : 0x0 \[Type: _IRP \*
+0x198\] MouseIsrDpc \[Type: _KDPC
+0x1b8\] MouseIsrDpcRetry \[Type: _KDPC
+0x1d8\] MouseIsrResetDpc \[Type: _KDPC
+0x1f8\] ResetMouse \[Type: _RESET_MOUSE
+0x1f8\] EnableMouse \[Type: _ENABLE_MOUSE
+0x248\] DpcInterlockMouse : 0 \[Type: long
+0x24c\] InputData : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x250\] DataIn : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x254\] DataOut : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x258\] DataEnd : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x25c\] CurrentInput \[Type: _MOUSE_INPUT_DATA
+0x274\] InputState : MouseIdle (0) \[Type: _MOUSE_STATE
+0x278\] InputResetSubState : ExpectingReset (0) \[Type: _MOUSE_RESET_SUBSTATE
+0x27c\] WorkerResetSubState : ExpectingReset (0) \[Type: _MOUSE_RESET_SUBSTATE
+0x280\] ResetCount : 0x0 \[Type: unsigned char
+0x281\] FailedCompleteResetCount : 0x0 \[Type: unsigned char
+0x282\] CurrentSignAndOverflow : 0x0 \[Type: unsigned char
+0x283\] PreviousSignAndOverflow : 0x0 \[Type: unsigned char
+0x288\] PreviousTick : {0} \[Type: _LARGE_INTEGER
+0x290\] SynchTickCount : 0x0 \[Type: unsigned long
+0x294\] WheelDetectionTimeout : 0x0 \[Type: unsigned long
+0x298\] WheelDetectionIDs : "" \[Type: _UNICODE_STRING
+0x2a0\] PnPID \[Type: unsigned short \[8\]
+0x2b0\] IsrHookCallback : 0x0 \[Type: unsigned char (\*)(void \*,_MOUSE_INPUT_DATA \*,_OUTPUT_PACKET \*,unsigned char,unsigned char \*,unsigned char \*,_MOUSE_STATE \*,_MOUSE_RESET_SUBSTATE \*)
+0x2b4\] HookContext : 0x0 \[Type: void \*
+0x2b8\] NotificationEntry : 0x0 \[Type: void \*
+0x2bc\] SampleRates : 0x0 \[Type: unsigned char \*
+0x2c0\] MouseResetStallTime : 0x0 \[Type: unsigned long
+0x2c4\] SampleRatesIndex : 0x0 \[Type: unsigned char
+0x2c5\] PreviousButtons : 0x0 \[Type: unsigned char
+0x2c6\] PostSamplesState : 0x0 \[Type: unsigned short
+0x2c8\] LastByteReceived : 0x0 \[Type: unsigned char
+0x2c9\] Resolution : 0x0 \[Type: unsigned char
+0x2ca\] EnableWheelDetection : 0x0 \[Type: unsigned char
+0x2cb\] NumberOfButtonsOverride : 0x0 \[Type: unsigned char
+0x2cc\] InitializePolled : 0x0 \[Type: unsigned char
+0x2d0\] RecordHistoryFlags : 0x0 \[Type: unsigned long
+0x2d4\] RecordHistoryCount : 0x0 \[Type: unsigned long
+0x2d8\] RecordHistoryState : 0x0 \[Type: unsigned long
1: kd> dv
MouseExtension = 0x89a73cf0
ResourceList = 0xe1368bf8
status = 0n-1985528592
initializeDataContext = struct _I8042_INITIALIZE_DATA_CONTEXT
self = 0xe1368bf8 Device for {...}
dumpData = unsigned long [1]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_CM_RESOURCE_LIST *)0xe1368bf8)
((i8042prt!_CM_RESOURCE_LIST *)0xe1368bf8) : 0xe1368bf8 [Type: _CM_RESOURCE_LIST *]
\
0x1\] : 0xe1368bfc \[Type: _CM_FULL_RESOURCE_DESCRIPTOR \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc)
((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc) : 0xe1368bfc [Type: _CM_FULL_RESOURCE_DESCRIPTOR *]
\
0\] : Interrupt Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc))
(*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc)) [Type: _CM_FULL_RESOURCE_DESCRIPTOR]
+0x000\] DoNotUse1 : PNPBus (15) \[Type: _INTERFACE_TYPE
+0x004\] DoNotUse2 : 0x0 \[Type: unsigned long
+0x008\] PartialResourceList \[Type: _CM_PARTIAL_RESOURCE_LIST
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_LIST *)0xe1368c04))
(*((i8042prt!_CM_PARTIAL_RESOURCE_LIST *)0xe1368c04)) [Type: _CM_PARTIAL_RESOURCE_LIST]
+0x000\] Version : 0x1 \[Type: unsigned short
+0x002\] Revision : 0x1 \[Type: unsigned short
+0x004\] Count : 0x1 \[Type: unsigned long
+0x008\] PartialDescriptors \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR \[1\]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR (*)[1])0xe1368c0c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR (*)[1])0xe1368c0c)) [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR [1]]
0\] : Interrupt Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0xe1368c0c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0xe1368c0c)) : Interrupt Resource [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR]
\
Type : 0x2 [Type: unsigned char]
Flags : 0x1
Globals.MouseExtension = MouseExtension;
self = MouseExtension->Self;
1: kd> x i8042prt!Globals
bac80340 i8042prt!Globals = struct _GLOBALS
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_GLOBALS *)0xffffffffbac80340))
(*((i8042prt!_GLOBALS *)0xffffffffbac80340)) [Type: _GLOBALS]
+0x000\] DebugFlags : 0x8888880f \[Type: unsigned long
+0x004\] IsrDebugFlags : 0x0 \[Type: unsigned long
+0x008\] ControllerData : 0x89a75218 \[Type: _CONTROLLER_DATA \*
+0x00c\] MouseExtension : 0x0 \[Type: _PORT_MOUSE_EXTENSION \*
+0x010\] KeyboardExtension : 0x89b930d8 \[Type: _PORT_KEYBOARD_EXTENSION \*
+0x014\] I8xReadXxxUchar : 0x0 \[Type: unsigned char (\*)(unsigned char \*)
+0x018\] I8xWriteXxxUchar : 0x0 \[Type: void (\*)(unsigned char \*,unsigned char)
+0x01c\] RegistryPath : "\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet001\\Services\\i8042prt" \[Type: _UNICODE_STRING
+0x024\] AddedKeyboards : 1 \[Type: long
+0x028\] AddedMice : 1 \[Type: long
+0x02c\] StartedDevices : 1 \[Type: long
+0x030\] PowerFlags : 0x0 \[Type: unsigned long
+0x034\] DispatchMutex \[Type: _FAST_MUTEX
+0x054\] RegistersMapped : 0x0 \[Type: unsigned char
+0x055\] BreakOnSysRq : 0x1 \[Type: unsigned char
+0x056\] Headless : 0x0 \[Type: unsigned char
+0x057\] ReportResetErrors : 0x0 \[Type: unsigned char
1: kd> t
eax=89a75218 ebx=00000000 ecx=bac885d6 edx=0000001b esi=89a73cf0 edi=00000000
eip=bac8592e esp=f78ee938 ebp=f78ee95c iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
i8042prt!I8xMouseConfiguration:
bac8592e 55 push ebp
1: kd> kc
00 i8042prt!I8xMouseConfiguration
01 i8042prt!I8xMouseStartDevice
02 i8042prt!I8xPnP
03 nt!IofCallDriver
04 mouclass!MouseSendIrpSynchronously
05 mouclass!MousePnP
06 nt!IofCallDriver
07 nt!IopSynchronousCall
08 nt!IopStartDevice
09 nt!PipProcessStartPhase1
0a nt!PipProcessDevNodeTree
0b nt!PiProcessStartSystemDevices
0c nt!PipDeviceActionWorker
0d nt!ExpWorkerThread
0e nt!PspSystemThreadStartup
0f nt!KiThreadStartup
1: kd> dv
MouseExtension = 0x89a73cf0
ResourceList = 0xe1368bf8
defaultInterruptMode = LevelSensitive (0n0)
currentResDesc = 0x00000008 Unknown Resource
defaultInterruptShare = 0xe1 ''
fullResDesc = ResourceList->List;
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_CM_RESOURCE_LIST *)0xe1368bf8)
((i8042prt!_CM_RESOURCE_LIST *)0xe1368bf8) : 0xe1368bf8 [Type: _CM_RESOURCE_LIST *]
\
0x1\] : 0xe1368bfc \[Type: _CM_FULL_RESOURCE_DESCRIPTOR \*
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((i8042prt!_CM_RESOURCE_LIST *)0xe1368bf8))
(*((i8042prt!_CM_RESOURCE_LIST *)0xe1368bf8)) [Type: _CM_RESOURCE_LIST]
+0x000\] Count : 0x1 \[Type: unsigned long
+0x004\] List \[Type: _CM_FULL_RESOURCE_DESCRIPTOR \[1\]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR (*)[1])0xe1368bfc))
(*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR (*)[1])0xe1368bfc)) [Type: _CM_FULL_RESOURCE_DESCRIPTOR [1]]
0\] \[Type: _CM_FULL_RESOURCE_DESCRIPTOR
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc))
(*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc)) [Type: _CM_FULL_RESOURCE_DESCRIPTOR]
\
0\] : Interrupt Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc))
(*((i8042prt!_CM_FULL_RESOURCE_DESCRIPTOR *)0xe1368bfc)) [Type: _CM_FULL_RESOURCE_DESCRIPTOR]
+0x000\] DoNotUse1 : PNPBus (15) \[Type: _INTERFACE_TYPE
+0x004\] DoNotUse2 : 0x0 \[Type: unsigned long
+0x008\] PartialResourceList \[Type: _CM_PARTIAL_RESOURCE_LIST
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_LIST *)0xe1368c04))
(*((i8042prt!_CM_PARTIAL_RESOURCE_LIST *)0xe1368c04)) [Type: _CM_PARTIAL_RESOURCE_LIST]
+0x000\] Version : 0x1 \[Type: unsigned short
+0x002\] Revision : 0x1 \[Type: unsigned short
+0x004\] Count : 0x1 \[Type: unsigned long
+0x008\] PartialDescriptors \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR \[1\]
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR (*)[1])0xe1368c0c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR (*)[1])0xe1368c0c)) [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR [1]]
0\] : Interrupt Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0xe1368c0c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0xe1368c0c)) : Interrupt Resource [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR]
\
Type : 0x2 [Type: unsigned char]
Flags : 0x1
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0xe1368c0c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0xe1368c0c)) : Interrupt Resource [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR]
+0x000\] Type : 0x2 \[Type: unsigned char
+0x001\] ShareDisposition : 0x1 \[Type: unsigned char
+0x002\] Flags : 0x1 \[Type: unsigned short
+0x004\] u \[Type: __unnamed
configuration->BusNumber = fullResDesc->BusNumber;
1: kd> p
eax=e1368bfc ebx=89a75220 ecx=00000001 edx=0000001b esi=804edc6c edi=00000000
eip=bac859c2 esp=f78ee920 ebp=f78ee934 iopl=0 nv up ei ng nz ac po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000292
i8042prt!I8xMouseConfiguration+0x94:
bac859c2 8b5004 mov edx,dword ptr [eax+4] ds:0023:e1368c00=00000000
1: kd> dt CM_FULL_RESOURCE_DESCRIPTOR e1368bfc
hal!CM_FULL_RESOURCE_DESCRIPTOR
+0x000 InterfaceType : f ( PNPBus )
+0x004 BusNumber : 0
+0x008 PartialResourceList : _CM_PARTIAL_RESOURCE_LIST
1: kd> x i8042prt!Globals
bac80340 i8042prt!Globals = struct _GLOBALS
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_GLOBALS *)0xffffffffbac80340))
(*((i8042prt!_GLOBALS *)0xffffffffbac80340)) [Type: _GLOBALS]
+0x000\] DebugFlags : 0x8888880f \[Type: unsigned long
+0x004\] IsrDebugFlags : 0x0 \[Type: unsigned long
+0x008\] ControllerData : 0x89a75218 \[Type: _CONTROLLER_DATA \*
+0x00c\] MouseExtension : 0x0 \[Type: _PORT_MOUSE_EXTENSION \*
+0x010\] KeyboardExtension : 0x89b930d8 \[Type: _PORT_KEYBOARD_EXTENSION \*
+0x014\] I8xReadXxxUchar : 0x0 \[Type: unsigned char (\*)(unsigned char \*)
+0x018\] I8xWriteXxxUchar : 0x0 \[Type: void (\*)(unsigned char \*,unsigned char)
+0x01c\] RegistryPath : "\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet001\\Services\\i8042prt" \[Type: _UNICODE_STRING
+0x024\] AddedKeyboards : 1 \[Type: long
+0x028\] AddedMice : 1 \[Type: long
+0x02c\] StartedDevices : 1 \[Type: long
+0x030\] PowerFlags : 0x0 \[Type: unsigned long
+0x034\] DispatchMutex \[Type: _FAST_MUTEX
+0x054\] RegistersMapped : 0x0 \[Type: unsigned char
+0x055\] BreakOnSysRq : 0x1 \[Type: unsigned char
+0x056\] Headless : 0x0 \[Type: unsigned char
+0x057\] ReportResetErrors : 0x0 \[Type: unsigned char
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_CONTROLLER_DATA *)0x89a75218)
((i8042prt!_CONTROLLER_DATA *)0x89a75218) : 0x89a75218 [Type: _CONTROLLER_DATA *]
+0x000\] HardwarePresent : 0x3 \[Type: unsigned long
+0x004\] ControllerObject : 0x89dd7240 \[Type: _CONTROLLER_OBJECT \*
+0x008\] Configuration \[Type: _I8042_CONFIGURATION_INFORMATION
+0x068\] CommandTimer \[Type: _KTIMER
+0x090\] BytesSpinLock : 0x0 \[Type: unsigned long
+0x094\] PowerSpinLock : 0x0 \[Type: unsigned long
+0x098\] DefaultBuffer \[Type: unsigned char \[4\]
+0x09c\] TimerCount : -1 \[Type: long
+0x0a0\] DeviceRegisters \[Type: unsigned char \* \[2\]
+0x0a8\] KnownPorts \[Type: _LARGE_INTEGER \[2\]
+0x0b8\] KnownPortsCount : 0x2 \[Type: unsigned long
+0x0bc\] CurrentIoControlCode : 0x0 \[Type: unsigned long
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_I8042_CONFIGURATION_INFORMATION *)0x89a75220))
(*((i8042prt!_I8042_CONFIGURATION_INFORMATION *)0x89a75220)) [Type: _I8042_CONFIGURATION_INFORMATION]
+0x000\] InterfaceType : PNPBus (15) \[Type: _INTERFACE_TYPE
+0x004\] BusNumber : 0x0 \[Type: unsigned long
+0x008\] PortList \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR \[2\]
+0x028\] PortListCount : 0x2 \[Type: unsigned long
+0x02c\] InterruptSynchIrql : 0x8 \[Type: unsigned char
+0x02e\] ResendIterations : 0x3 \[Type: unsigned short
+0x030\] PollingIterations : 0x2ee0 \[Type: unsigned short
+0x032\] PollingIterationsMaximum : 0x2ee0 \[Type: unsigned short
+0x034\] PollStatusIterations : 0x2ee0 \[Type: unsigned short
+0x036\] StallMicroseconds : 0x32 \[Type: unsigned short
+0x038\] FloatingSave : 0x0 \[Type: unsigned char
+0x039\] SharedInterrupts : 0x0 \[Type: unsigned char
+0x03a\] OverrideKeyboardIdentifier \[Type: unsigned short \[16\]
else {
defaultInterruptShare = I8042_INTERRUPT_SHARE;
defaultInterruptMode = I8042_INTERRUPT_MODE;
}
case CmResourceTypeInterrupt:
//
// Copy the interrupt information.
//
MouseExtension->InterruptDescriptor = *currentResDesc;
MouseExtension->InterruptDescriptor.ShareDisposition =
defaultInterruptShare ? CmResourceShareShared :
CmResourceShareDeviceExclusive;
break;
1: kd> dv
MouseExtension = 0x89a73cf0
ResourceList = 0x00368bf8
defaultInterruptMode = Latched (0n1)
currentResDesc = 0xe1368c0c Interrupt Resource
defaultInterruptShare = 0x00 ''
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0)
((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0) : 0x89a73cf0 [Type: _PORT_MOUSE_EXTENSION *]
+0x000\] Self : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x004\] InterruptObject : 0x0 \[Type: _KINTERRUPT \*
+0x008\] InterruptSpinLock : 0x0 \[Type: unsigned long
+0x00c\] TopOfStack : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] PDO : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x018\] RemoveLock \[Type: _IO_REMOVE_LOCK
+0x070\] OutstandingPowerIrp : 0x0 \[Type: _IRP \*
+0x074\] PowerState : PowerDeviceD0 (1) \[Type: _DEVICE_POWER_STATE
+0x078\] SystemState : PowerSystemUnspecified (0) \[Type: _SYSTEM_POWER_STATE
+0x07c\] ShutdownType : PowerActionNone (0) \[Type: POWER_ACTION
+0x080\] InputCount : 0x0 \[Type: unsigned long
+0x084\] EnableCount : 0 \[Type: long
+0x088\] DataConsumptionTimer \[Type: _KTIMER
+0x0b0\] RetriesExceededDpc \[Type: _KDPC
+0x0d0\] ErrorLogDpc \[Type: _KDPC
+0x0f0\] TimeOutDpc \[Type: _KDPC
+0x110\] ResetDpc \[Type: _KDPC
+0x130\] SequenceNumber : 0x0 \[Type: unsigned long
+0x134\] ConnectData \[Type: _CONNECT_DATA
+0x13c\] WmiLibInfo \[Type: _WMILIB_CONTEXT
+0x15c\] CurrentOutput \[Type: _OUTPUT_PACKET
+0x16c\] InterruptDescriptor : No Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
+0x17c\] PnpDeviceState : 0x0 \[Type: unsigned long
+0x180\] ResendCount : 0 \[Type: short
+0x182\] OkayToLogOverflow : 0x0 \[Type: unsigned char
+0x183\] Initialized : 0x0 \[Type: unsigned char
+0x184\] IsIsrActivated : 0x0 \[Type: unsigned char
+0x185\] IsKeyboard : 0x0 \[Type: unsigned char
+0x186\] Started : 0x0 \[Type: unsigned char
+0x188\] MouseAttributes \[Type: _MOUSE_ATTRIBUTES
+0x194\] ResetIrp : 0x0 \[Type: _IRP \*
+0x198\] MouseIsrDpc \[Type: _KDPC
+0x1b8\] MouseIsrDpcRetry \[Type: _KDPC
+0x1d8\] MouseIsrResetDpc \[Type: _KDPC
+0x1f8\] ResetMouse \[Type: _RESET_MOUSE
+0x1f8\] EnableMouse \[Type: _ENABLE_MOUSE
+0x248\] DpcInterlockMouse : 0 \[Type: long
+0x24c\] InputData : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x250\] DataIn : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x254\] DataOut : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x258\] DataEnd : 0x0 \[Type: _MOUSE_INPUT_DATA \*
+0x25c\] CurrentInput \[Type: _MOUSE_INPUT_DATA
+0x274\] InputState : MouseIdle (0) \[Type: _MOUSE_STATE
+0x278\] InputResetSubState : ExpectingReset (0) \[Type: _MOUSE_RESET_SUBSTATE
+0x27c\] WorkerResetSubState : ExpectingReset (0) \[Type: _MOUSE_RESET_SUBSTATE
+0x280\] ResetCount : 0x0 \[Type: unsigned char
+0x281\] FailedCompleteResetCount : 0x0 \[Type: unsigned char
+0x282\] CurrentSignAndOverflow : 0x0 \[Type: unsigned char
+0x283\] PreviousSignAndOverflow : 0x0 \[Type: unsigned char
+0x288\] PreviousTick : {0} \[Type: _LARGE_INTEGER
+0x290\] SynchTickCount : 0x0 \[Type: unsigned long
+0x294\] WheelDetectionTimeout : 0x0 \[Type: unsigned long
+0x298\] WheelDetectionIDs : "" \[Type: _UNICODE_STRING
+0x2a0\] PnPID \[Type: unsigned short \[8\]
+0x2b0\] IsrHookCallback : 0x0 \[Type: unsigned char (\*)(void \*,_MOUSE_INPUT_DATA \*,_OUTPUT_PACKET \*,unsigned char,unsigned char \*,unsigned char \*,_MOUSE_STATE \*,_MOUSE_RESET_SUBSTATE \*)
+0x2b4\] HookContext : 0x0 \[Type: void \*
+0x2b8\] NotificationEntry : 0x0 \[Type: void \*
+0x2bc\] SampleRates : 0x0 \[Type: unsigned char \*
+0x2c0\] MouseResetStallTime : 0x0 \[Type: unsigned long
+0x2c4\] SampleRatesIndex : 0x0 \[Type: unsigned char
+0x2c5\] PreviousButtons : 0x0 \[Type: unsigned char
+0x2c6\] PostSamplesState : 0x0 \[Type: unsigned short
+0x2c8\] LastByteReceived : 0x0 \[Type: unsigned char
+0x2c9\] Resolution : 0x0 \[Type: unsigned char
+0x2ca\] EnableWheelDetection : 0x0 \[Type: unsigned char
+0x2cb\] NumberOfButtonsOverride : 0x0 \[Type: unsigned char
+0x2cc\] InitializePolled : 0x0 \[Type: unsigned char
+0x2d0\] RecordHistoryFlags : 0x0 \[Type: unsigned long
+0x2d4\] RecordHistoryCount : 0x0 \[Type: unsigned long
+0x2d8\] RecordHistoryState : 0x0 \[Type: unsigned long
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0)
((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0) : 0x89a73cf0 [Type: _PORT_MOUSE_EXTENSION *]
+0x000\] Self : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x004\] InterruptObject : 0x0 \[Type: _KINTERRUPT \*
+0x008\] InterruptSpinLock : 0x0 \[Type: unsigned long
+0x00c\] TopOfStack : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] PDO : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x018\] RemoveLock \[Type: _IO_REMOVE_LOCK
+0x070\] OutstandingPowerIrp : 0x0 \[Type: _IRP \*
+0x074\] PowerState : PowerDeviceD0 (1) \[Type: _DEVICE_POWER_STATE
+0x078\] SystemState : PowerSystemUnspecified (0) \[Type: _SYSTEM_POWER_STATE
+0x07c\] ShutdownType : PowerActionNone (0) \[Type: POWER_ACTION
+0x080\] InputCount : 0x0 \[Type: unsigned long
+0x084\] EnableCount : 0 \[Type: long
+0x088\] DataConsumptionTimer \[Type: _KTIMER
+0x0b0\] RetriesExceededDpc \[Type: _KDPC
+0x0d0\] ErrorLogDpc \[Type: _KDPC
+0x0f0\] TimeOutDpc \[Type: _KDPC
+0x110\] ResetDpc \[Type: _KDPC
+0x130\] SequenceNumber : 0x0 \[Type: unsigned long
+0x134\] ConnectData \[Type: _CONNECT_DATA
+0x13c\] WmiLibInfo \[Type: _WMILIB_CONTEXT
+0x15c\] CurrentOutput \[Type: _OUTPUT_PACKET
+0x16c\] InterruptDescriptor : Interrupt Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
+0x17c\] PnpDeviceState : 0x0 \[Type: unsigned long
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0x89a73e5c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0x89a73e5c)) : Interrupt Resource [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR]
\
Type : 0x2 [Type: unsigned char]
Flags : 0x1
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 -n (*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0x89a73e5c))
(*((i8042prt!_CM_PARTIAL_RESOURCE_DESCRIPTOR *)0x89a73e5c)) : Interrupt Resource [Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR]
+0x000\] Type : 0x2 \[Type: unsigned char
+0x001\] ShareDisposition : 0x1 \[Type: unsigned char
+0x002\] Flags : 0x1 \[Type: unsigned short
+0x004\] u \[Type: __unnamed
MouseExtension->MouseAttributes.MouseIdentifier = MOUSE_I8042_HARDWARE;
Print(DBG_SS_INFO,
("Mouse interrupt config --\n"
"%s, %s, Irq = 0x%x\n",
MouseExtension->InterruptDescriptor.ShareDisposition == CmResourceShareShared?
"Sharable" : "NonSharable",
MouseExtension->InterruptDescriptor.Flags == CM_RESOURCE_INTERRUPT_LATCHED?
"Latched" : "Level Sensitive",
MouseExtension->InterruptDescriptor.u.Interrupt.Vector
));
1: kd> p
8042: Mouse interrupt config --
NonSharable, Latched, Irq = 0x1a3
0: kd> g
8042: results from services key:
mouse queue length = 100
number of buttons = 0
sample rate = 60
resolution = 3
synch tick count = 10000000
wheel detection = 1
detection timeout = 0
intiailize polled = 0
reset stall time = 1000
8042: results from devnode key:
mouse queue length = 100
number of buttons = 0
sample rate = 100
resolution = 3
synch tick count = 20000000
wheel detection = 2
initialize polled = 0
detection timeout = 1500
8042: I8xMouseServiceParameters results..
8042: EnableWheelDetection = 0x2
8042: MouseDataQueueSize = 0x960
8042: NumberOfButtons = 2
8042: SampleRate = 100
8042: MouseResolution = 3
8042: MouseResetStallTime = 1000
8042: WheelDetectionTimeout = 96
8042: MouseSynchIn100ns = 0x80
8042: NonSharable, Ports (#0) 0x60 - 0x60
8042: NonSharable, Ports (#1) 0x64 - 0x64
8042: I8xToggleInterrupts(FALSE), enter
8042: I8xInitializeHardware: enter
8042: I8xInitializeKeyboard, enter
8042: I8xInitializeKeyboard (0x0)
8042: I8xInitializeMouse enter
8042: Initializing via the interrupt
8042: resetting the LEDs
8042: I8xInitializeHardware (k 0x0, m 0x0)
8042: I8xToggleInterrupts(TRUE), enter
8042: I8xKeyboardConnectInterrupt:
FDO = 0x89b93020
Vector = 0x193
Irql = 0x8
SynchIrql = 0x9
Intterupt Mode = Latched
Shared int: false
Affinity = 0x3
Floating Save = no
1: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0)
((i8042prt!_PORT_MOUSE_EXTENSION *)0x89a73cf0) : 0x89a73cf0 [Type: _PORT_MOUSE_EXTENSION *]
+0x000\] Self : 0x89a73c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*
+0x004\] InterruptObject : 0x0 \[Type: _KINTERRUPT \*
+0x008\] InterruptSpinLock : 0x0 \[Type: unsigned long
+0x00c\] TopOfStack : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x010\] PDO : 0x89cb4c98 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*
+0x018\] RemoveLock \[Type: _IO_REMOVE_LOCK
+0x070\] OutstandingPowerIrp : 0x0 \[Type: _IRP \*
+0x074\] PowerState : PowerDeviceD0 (1) \[Type: _DEVICE_POWER_STATE
+0x078\] SystemState : PowerSystemUnspecified (0) \[Type: _SYSTEM_POWER_STATE
+0x07c\] ShutdownType : PowerActionNone (0) \[Type: POWER_ACTION
+0x080\] InputCount : 0x0 \[Type: unsigned long
+0x084\] EnableCount : 0 \[Type: long
+0x088\] DataConsumptionTimer \[Type: _KTIMER
+0x0b0\] RetriesExceededDpc \[Type: _KDPC
+0x0d0\] ErrorLogDpc \[Type: _KDPC
+0x0f0\] TimeOutDpc \[Type: _KDPC
+0x110\] ResetDpc \[Type: _KDPC
+0x130\] SequenceNumber : 0x0 \[Type: unsigned long
+0x134\] ConnectData \[Type: _CONNECT_DATA
+0x13c\] WmiLibInfo \[Type: _WMILIB_CONTEXT
+0x15c\] CurrentOutput \[Type: _OUTPUT_PACKET
+0x16c\] InterruptDescriptor : Interrupt Resource \[Type: _CM_PARTIAL_RESOURCE_DESCRIPTOR
+0x17c\] PnpDeviceState : 0x0 \[Type: unsigned long
+0x180\] ResendCount : 0 \[Type: short
+0x182\] OkayToLogOverflow : 0x1 \[Type: unsigned char
+0x183\] Initialized : 0x1 \[Type: unsigned char
+0x184\] IsIsrActivated : 0x0 \[Type: unsigned char
+0x185\] IsKeyboard : 0x0 \[Type: unsigned char
+0x186\] Started : 0x0 \[Type: unsigned char
+0x188\] MouseAttributes \[Type: _MOUSE_ATTRIBUTES
+0x194\] ResetIrp : 0x0 \[Type: _IRP \*
+0x198\] MouseIsrDpc \[Type: _KDPC
+0x1b8\] MouseIsrDpcRetry \[Type: _KDPC
+0x1d8\] MouseIsrResetDpc \[Type: _KDPC
+0x1f8\] ResetMouse \[Type: _RESET_MOUSE
+0x1f8\] EnableMouse \[Type: _ENABLE_MOUSE
+0x248\] DpcInterlockMouse : -1 \[Type: long
+0x24c\] InputData : 0x8989f238 \[Type: _MOUSE_INPUT_DATA \*
+0x250\] DataIn : 0x8989f238 \[Type: _MOUSE_INPUT_DATA \*
+0x254\] DataOut : 0x8989f238 \[Type: _MOUSE_INPUT_DATA \*
+0x258\] DataEnd : 0x8989fb98 \[Type: _MOUSE_INPUT_DATA \*
1: kd> kc
00 nt!IoConnectInterrupt
01 i8042prt!I8xKeyboardConnectInterrupt
02 i8042prt!I8xMouseInitializeHardware
03 i8042prt!I8xMouseStartDevice
04 i8042prt!I8xPnP
05 nt!IofCallDriver
06 mouclass!MouseSendIrpSynchronously
07 mouclass!MousePnP
08 nt!IofCallDriver
09 nt!IopSynchronousCall
0a nt!IopStartDevice
0b nt!PipProcessStartPhase1
0c nt!PipProcessDevNodeTree
0d nt!PiProcessStartSystemDevices
0e nt!PipDeviceActionWorker
0f nt!ExpWorkerThread
10 nt!PspSystemThreadStartup
11 nt!KiThreadStartup
1: kd> kv
ChildEBP RetAddr Args to Child
00 f78ee8a8 bac84fdf 89b930dc bac7b052 89b93020 nt!IoConnectInterrupt (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 3885]
01 f78ee918 bac88283 89b930dc 89a73cf0 bac8c1f8 i8042prt!I8xKeyboardConnectInterrupt+0x115 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\pnpi8042\kbdpnp.c @ 117]
02 f78ee934 bac88afa 89b930d8 89a73cf0 00000000 i8042prt!I8xMouseInitializeHardware+0xad (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\pnpi8042\moupnp.c @ 328]
03 f78ee95c bac8a00e 00000000 89a73c38 89a73c38 i8042prt!I8xMouseStartDevice+0x3be (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\pnpi8042\moupnp.c @ 588]
04 f78ee980 80a2675c 89a73c38 89a36f70 f7508064 i8042prt!I8xPnP+0x29a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\pnpi8042\pnp.c @ 378]
05 f78ee99c f750e509 00000000 89a36e70 89976208 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
06 f78ee9c0 f750b91e 89a73c38 89a36e70 00000001 mouclass!MouseSendIrpSynchronously+0xab (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 1475]
07 f78eea2c 80a2675c 89a36f94 89a36e70 89a36fb8 mouclass!MousePnP+0x382 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 4224]
08 f78eea48 80c95e00 f78eeabc 89c64918 89cb4c98 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
09 f78eea78 80c95f56 00000000 f78eea98 00000000 nt!IopSynchronousCall+0x1aa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 258]
0a f78eeabc 80c8f415 89cb4c98 00000001 00000000 nt!IopStartDevice+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 334]
0b f78eead8 80c94d55 89cb4c98 89a2c801 00000000 nt!PipProcessStartPhase1+0x9d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 5014]
0c f78eed24 80c955c0 89db9ac0 00000001 00000000 nt!PipProcessDevNodeTree+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 4648]
0d f78eed58 80a2deb5 89a2c878 89dcfda0 80bf5cbc nt!PiProcessStartSystemDevices+0x6e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 6436]
0e f78eed80 80af2bb9 00000000 00000000 89dcfda0 nt!PipDeviceActionWorker+0x199 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 821]
0f f78eedac 80d391f0 00000000 00000000 00000000 nt!ExpWorkerThread+0x10f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ex\worker.c @ 1153]
10 f78eeddc 80b00d52 80af2aaa 00000001 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
11 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]
1: kd> dv
InterruptObject = 0x89b930dc
ServiceRoutine = 0xbac7b052
ServiceContext = 0x89b93020
SpinLock = 0x89b930e0
Vector = 0x193
Irql = 0x08 ''
SynchronizeIrql = 0x09 ''
InterruptMode = Latched (0n1)
ShareVector = 0x00 ''
ProcessorEnableMask = 3
FloatingSave = 0x00 ''
interruptObject = 0x00000008
status = 0n0
spinLock = 0x80c61901
builtinUsed = 0x89 ''
count = 0n3 ''
1: kd> u bac7b052
i8042prt!I8042KeyboardInterruptService [d:\srv03rtm\drivers\input\pnpi8042\kbddep.c @ 82]:
bac7b052 6a18 push 18h
bac7b054 6868eac7ba push offset i8042prt!ScanCodeToUCharCount+0x4 (bac7ea68)
bac7b059 e8ba230000 call i8042prt!__SEH_prolog (bac7d418)
bac7b05e f6054403c8ba02 test byte ptr [i8042prt!Globals+0x4 (bac80344)],2
bac7b065 7418 je i8042prt!I8042KeyboardInterruptService+0x2d (bac7b07f)
bac7b067 ff35c4e3c7ba push dword ptr [i8042prt!pIsrKb (bac7e3c4)]
bac7b06d e89a230000 call i8042prt!DbgPrint (bac7d40c)
bac7b072 c704245caec7ba mov dword ptr [esp],offset i8042prt!I8xQueueCurrentKeyboardInput+0x9a (bac7ae5c)
NTSTATUS
I8xMouseInitializeHardware(
PPORT_KEYBOARD_EXTENSION KeyboardExtension,
PPORT_MOUSE_EXTENSION MouseExtension
)
{
//
// The mouse could be present but not have been initialized
// in I8xInitializeHardware
//
if (DEVICE_START_SUCCESS(mouseStatus)) {
//
// I8xMouseConnectInterruptAndEnable will log any errors if unsuccessful
//
mouseStatus = I8xMouseConnectInterruptAndEnable(
MouseExtension,
mouseStatus == STATUS_DEVICE_NOT_CONNECTED ? FALSE : TRUE
);
}
1: kd> gu
eax=00000000 ebx=89b93020 ecx=89975e18 edx=00000000 esi=89b930d8 edi=89a75220
eip=bac84fdf esp=f78ee8dc ebp=f78ee918 iopl=0 nv up ei pl zr na pe cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000247
i8042prt!I8xKeyboardConnectInterrupt+0x115:
bac84fdf 85c0 test eax,eax
1: kd> !idt
Dumping IDT: f773d6e0
585e822f00000037: 804ed194 hal!PicSpuriousService37
585e822f0000003d: 804ee7d8 hal!HalpApcInterrupt
585e822f00000041: 804ee618 hal!HalpDispatchInterrupt
585e822f00000050: 804ed26c hal!HalpApicRebootService
585e822f00000062: 89920d44 atapi!IdePortInterrupt (KINTERRUPT 89920d08)
585e822f00000082: 8991ce54 atapi!IdePortInterrupt (KINTERRUPT 8991ce18)
585e822f00000083: 89be0e54 SCSIPORT!ScsiPortInterrupt (KINTERRUPT 89be0e18)
585e822f00000093: 89975e54 i8042prt!I8042KeyboardInterruptService (KINTERRUPT 89975e18)
585e822f000000b1: 89d3973c ACPI!ACPIInterruptServiceRoutine (KINTERRUPT 89d39700)
585e822f000000c1: 804ed408 hal!HalpBroadcastCallService
585e822f000000d1: 804ecb74 hal!HalpClockInterruptPn
585e822f000000e1: 804ed83c hal!HalpIpiHandler
585e822f000000e3: 804ed650 hal!HalpLocalApicErrorService
585e822f000000fd: 804edde8 hal!HalpProfileInterrupt
585e822f000000fe: 804edfa0 hal!HalpPerfInterrupt
1: kd> kc
00 i8042prt!I8xMouseConnectInterruptAndEnable
01 i8042prt!I8xMouseInitializeHardware
02 i8042prt!I8xMouseStartDevice
03 i8042prt!I8xPnP
04 nt!IofCallDriver
05 mouclass!MouseSendIrpSynchronously
06 mouclass!MousePnP
07 nt!IofCallDriver
08 nt!IopSynchronousCall
09 nt!IopStartDevice
0a nt!PipProcessStartPhase1
0b nt!PipProcessDevNodeTree
0c nt!PiProcessStartSystemDevices
0d nt!PipDeviceActionWorker
0e nt!ExpWorkerThread
0f nt!PspSystemThreadStartup
10 nt!KiThreadStartup
1: kd> dv
MouseExtension = 0x89a73cf0
Reset = 0x01 ''
status = 0n-1985528592
self = 0x00000008
dumpData = unsigned long [1]
topOfStack = 0x00000008
startInfo = struct _INTERNAL_I8042_START_INFORMATION
1: kd> g
8042: Connect INT, reset = 1
8042: I8xMouseConnectInterruptAndEnable:
FDO = 0x89a73c38
Vector = 0x1a3
Irql = 0x9
SynchIrql = 0x9
Intterupt Mode = Latched
Shared int: false
Affinity = 0x3
Floating Save = no
Breakpoint 10 hit
eax=89a73cf8 ebx=89a73cf4 ecx=80ae0dfa edx=000000b3 esi=89a73cf0 edi=89a75220
eip=80c61900 esp=f78ee8a8 ebp=f78ee914 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
nt!IoConnectInterrupt:
80c61900 55 push ebp
**1: kd> kc
00 nt!IoConnectInterrupt
01 i8042prt!I8xMouseConnectInterruptAndEnable
02 i8042prt!I8xMouseInitializeHardware
03 i8042prt!I8xMouseStartDevice
04 i8042prt!I8xPnP**
05 nt!IofCallDriver
06 mouclass!MouseSendIrpSynchronously
07 mouclass!MousePnP
08 nt!IofCallDriver
09 nt!IopSynchronousCall
0a nt!IopStartDevice
0b nt!PipProcessStartPhase1
0c nt!PipProcessDevNodeTree
0d nt!PiProcessStartSystemDevices
0e nt!PipDeviceActionWorker
0f nt!ExpWorkerThread
10 nt!PspSystemThreadStartup
11 nt!KiThreadStartup
1: kd> dv
InterruptObject = 0x89a73cf4
ServiceRoutine = 0xbac8cd78
ServiceContext = 0x89a73c38
SpinLock = 0x89a73cf8
Vector = 0x1a3
Irql = 0x09 ''
SynchronizeIrql = 0x09 ''
InterruptMode = Latched (0n1)
ShareVector = 0x00 ''
ProcessorEnableMask = 3
FloatingSave = 0x00 ''
interruptObject = 0x00000008
status = 0n0
spinLock = 0x80c61901
builtinUsed = 0x89 ''
count = 0n3 ''
1: kd> u bac8cd78
i8042prt!I8042MouseInterruptService [d:\srv03rtm\drivers\input\pnpi8042\moudep.c @ 124]:
bac8cd78 55 push ebp
bac8cd79 8bec mov ebp,esp
bac8cd7b 83ec14 sub esp,14h
bac8cd7e f6054603c8ba02 test byte ptr [i8042prt!Globals+0x6 (bac80346)],2
bac8cd85 c645fd01 mov byte ptr [ebp-3],1
bac8cd89 741e je i8042prt!I8042MouseInterruptService+0x31 (bac8cda9)
bac8cd8b ff35c8e3c7ba push dword ptr [i8042prt!pIsrMou (bac7e3c8)]
bac8cd91 e87606ffff call i8042prt!DbgPrint (bac7d40c)
1: kd> !idt
Dumping IDT: f773d6e0
585e822f00000037: 804ed194 hal!PicSpuriousService37
585e822f0000003d: 804ee7d8 hal!HalpApcInterrupt
585e822f00000041: 804ee618 hal!HalpDispatchInterrupt
585e822f00000050: 804ed26c hal!HalpApicRebootService
585e822f00000062: 89920d44 atapi!IdePortInterrupt (KINTERRUPT 89920d08)
585e822f00000082: 8991ce54 atapi!IdePortInterrupt (KINTERRUPT 8991ce18)
585e822f00000083: 89be0e54 SCSIPORT!ScsiPortInterrupt (KINTERRUPT 89be0e18)
585e822f00000093: 89975e54 i8042prt!I8042KeyboardInterruptService (KINTERRUPT 89975e18)
585e822f000000a3: 89b412ac i8042prt!I8042MouseInterruptService (KINTERRUPT 89b41270)
585e822f000000b1: 89d3973c ACPI!ACPIInterruptServiceRoutine (KINTERRUPT 89d39700)
585e822f000000c1: 804ed408 hal!HalpBroadcastCallService
585e822f000000d1: 804ecb74 hal!HalpClockInterruptPn
585e822f000000e1: 804ed83c hal!HalpIpiHandler
585e822f000000e3: 804ed650 hal!HalpLocalApicErrorService
585e822f000000fd: 804edde8 hal!HalpProfileInterrupt
585e822f000000fe: 804edfa0 hal!HalpPerfInterrupt