nt!PipProcessStartPhase1函数中的nt!IopStartDevice

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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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 *]

\\] \[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: _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 *]

\\] \[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]

\\] \[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: _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: _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