Dear all,
I’m quite new to wdf driver developement and I’m trying to create a driver for an ACPI device. Actually my first steps were quite successful, until I tried to implement interrupt handling for the device. The problems started with calling “WdfInterruptCreate”. My device switches into D0 state an right after it goes into WdfPowerDeviceD3Final. This is actually the end of my drivers live time. Is any body out there who can explain me how to keep the device into D0 state? Where is the connection between “WdfInterruptCreate” and the WdfPowerDeviceD3Final?
THanks in advance
Jan
When are you creating the wdfinterrupt? Put a breakpoint on your cleanup() routine for your wdfdevice, when it fires, run
!wdfkd.wdflogdump
And it will tell you why the start path is failing. My guess is that the IoConnectInterrupt call is failing. Are you using a LogConfig in your inf to force an interrupt to be assigned?
d
debt from my phone
________________________________
From: xxxxx@web.de
Sent: 10/23/2011 1:44 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfInterruptCreate causes WdfPowerDeviceD3Final for my device, please help
Dear all,
I’m quite new to wdf driver developement and I’m trying to create a driver for an ACPI device. Actually my first steps were quite successful, until I tried to implement interrupt handling for the device. The problems started with calling “WdfInterruptCreate”. My device switches into D0 state an right after it goes into WdfPowerDeviceD3Final. This is actually the end of my drivers live time. Is any body out there who can explain me how to keep the device into D0 state? Where is the connection between “WdfInterruptCreate” and the WdfPowerDeviceD3Final?
THanks in advance
Jan
—
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
The call of “WdfInterruptCreate” is in the DeviceAdd function. Actually this causes new resources in my EvtPrepareHardware function. So I get the interrupt information of the device, the device switches into D0 state and right after into WdfPowerDeviceD3Final. So I actually do not have any chance to do something with the driver because it is unloaded right after the start.
If i clear only the WdfInterruptCreate source code line, my device does not call the EvtDeviceD0Entry and EvtDeviceD0Exit function, but at least it is not unloading, which I do not understand at all.
Any ideas on that?
< And it will tell you why the start path is failing. My guess is that the IoConnectInterrupt call is failing.
Not yet, I’m going to implement it and check if it is changing the situation.
Do not use logconfig, I was asking as a potential source of failure.
Actually this causes new resources in my EvtPrepareHardware function
No, it doesn’t. Creation of an interrupt object does not change the assigned resources
So I actually do not have any chance to do something with the driver because it is unloaded right after the start.
That is why I suggested you set a bp on the cleanup() routine registered on your wdfdevice. If you don’t register one, do so and follow my instructions.
d
debt from my phone
From: xxxxx@web.de
Sent: 10/23/2011 11:57 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WdfInterruptCreate causes WdfPowerDeviceD3Final for my device, please help
The call of “WdfInterruptCreate” is in the DeviceAdd function. Actually this causes new resources in my EvtPrepareHardware function. So I get the interrupt information of the device, the device switches into D0 state and right after into WdfPowerDeviceD3Final. So I actually do not have any chance to do something with the driver because it is unloaded right after the start.
If i clear only the WdfInterruptCreate source code line, my device does not call the EvtDeviceD0Entry and EvtDeviceD0Exit function, but at least it is not unloading, which I do not understand at all.
Any ideas on that?
< And it will tell you why the start path is failing. My guess is that the IoConnectInterrupt call is failing.
Not yet, I’m going to implement it and check if it is changing the situation.
—
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
Please DO follow Doron’s advice. That’ll help us determine what’s going on.
What TYPE of resources are you expecting? How many interrupts does your device have, and what type are they? If we’re talking a (Win8) SPB type of device/interrupt scheme, you might want to move your WdfInterruptCreate to PrepareHardware… but let’s see what the WDFLOGDUMP says first, as Doron suggested.
Peter
OSR
Thanks for your advices. I’m going to follow them right now.
Peter:
I’m trying to create a driver for the HPET on my Windows XP.
As parameter of the “EvtPrepareHardware” callback I get CmResourceTypeMemory with the adress of the physikal memory and 2 interrupts:
1st: Interrupt level: 0x1b, Vector: 0x30
2nd: Interrupt level: 0x13, Vector: 0x38
Mapping the physical memory and accessing the HPET is working fine. Interrupt support makes problems.
I need the HPET support with WinXp for a university project.
Anyway, I’m giong to follow your instructions and get back to you later.
Thanks a ton for your help.
Jan
> 2 interrupts
TWO interrupts? Hmmmm… that doesn’t seem right.
You’re looking at the TRANSLATED resources?
How is your device being instantiated… what’s the bus driver and how are you claiming the device?
Peter
OSR
This is never going to work with the HPET. The interrupts conflict with the
other timers in most HPET implementations.
Jake Oshins
Hyper-V I/O Architect
Windows Kernel Group
This post implies no warranties and confers no rights.
wrote in message news:xxxxx@ntdev…
Thanks for your advices. I’m going to follow them right now.
Peter:
I’m trying to create a driver for the HPET on my Windows XP.
As parameter of the “EvtPrepareHardware” callback I get CmResourceTypeMemory
with the adress of the physikal memory and 2 interrupts:
1st: Interrupt level: 0x1b, Vector: 0x30
2nd: Interrupt level: 0x13, Vector: 0x38
Mapping the physical memory and accessing the HPET is working fine.
Interrupt support makes problems.
I need the HPET support with WinXp for a university project.
Anyway, I’m giong to follow your instructions and get back to you later.
Thanks a ton for your help.
Jan
Dear all,
Thanks for your comments. Actually it took me ages to get the right debug output, but now I can get back to you with the requested information. As I said, I?m not that experienced. That?s why I?m really thankful that you spend your time with helping me.
Peter:
This is the part where I get my resources:
Function Parameter: WDFCMRESLIST ResourcesTranslated
PCM_PARTIAL_RESOURCE_DESCRIPTOR resourceTrans;
resourceTrans = WdfCmResourceListGetDescriptor(ResourcesTranslated, i);
Conerning the HPET spec I should at least get 3 interrupt objects. Maybe it is a question of conflicts?
I?m installing the driver via Hardware-Manager and generated .inf file.
Doron:
Please find the debug output here. I hope that your can help me finding the problem.
HPET driver loading?
<– DriverEntry
–> DeviceAdd
<– DeviceAdd
–> EvtPrepareHardware
Number of resources found: 3
Resource: 0 “Interrupt”
Interrupt level: 0x1b, Vector: 0x30
Resource: 1 “Interrupt” gelesen
Interrupt level: 0x13, Vector: 0x38
Resource: 2 physical memory
Register 0x0:fed00000 Laenge 1024.
–> GetHardwareControl
HPET memory mapped!
HPET-Status:
Register HPET_GENERAL_CAP_ID_OFFSET: 42949675116306945
Register HPET_GENERAL_CONFIG_OFFSET: 0
Register HPET_GENERAL_INTERRUPT_STATUS_OFFSET: 0
Register HPET_MAIN_COUNTER_VALUE_OFFSET: 0
Register HPET_TIMER0_CONFIG_CAP_OFFSET: 18446744069414584368
Register HPET_TIMER0_COMPERATOR_VALUE_OFFSET: 18446744073709551615
Register HPET_TIMER0_INTERRUPT_ROUTE_REGISTER_OFFSET: 0
Register HPET_TIMER1_CONFIG_CAP_OFFSET: 18446744069414584368
Register HPET_TIMER1_COMPERATOR_VALUE_OFFSET: 18446744073709551615
Register HPET_TIMER1_INTERRUPT_ROUTE_REGISTER_OFFSET: 0
Register HPET_TIMER2_CONFIG_CAP_OFFSET: 0
Register HPET_TIMER2_COMPERATOR_VALUE_OFFSET: 0
Register HPET_TIMER2_INTERRUPT_ROUTE_REGISTER_OFFSET: 0
<– GetHardwareControl
<– EvtPrepareHardware
–> EvtDeviceD0Entry
<– EvtDeviceD0Entry
–> EvtDeviceD0Exit
Status: WdfPowerDeviceD3Final
<– EvtDeviceD0Exit
–> EvtReleaseHardware
–> ReleaseHardwareControl
Hardware successfully released
<– ReleaseHardwareControl
<– EvtReleaseHardware
–> EvtDeviceContextCleanup
Break instruction exception - code 80000003 (first chance)
hpet!EvtDeviceContextCleanup+0x5b:
b762540b cc int 3
kd> !wdfkd.wdftmffile C:\Temp\trace\i386\Wdf01009.tmf
Set TMF file name is : ‘C:\Temp\trace\i386\Wdf01009.tmf’
kd> !load C:\Temp\wdfkd.dll
kd> !wdfkd.wdflogdump hpet
Trace searchpath is:
Trace format prefix is: %7!u!: %!FUNC! -
TMF file used for formatting log is: C:\Temp\trace\i386\Wdf01009.tmf
Log at 8994f000
Gather log: Please wait, this may take a moment (reading 4032 bytes).
% read so far … 10, 20, 30, 100
There are 36 log entries
— start of log —
1: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated
2: imp_WdfControlFinishInitializing - WDFDEVICE 7648C930 not a control device
3: FxPkgPnp::FilterResourceRequirements - Not enough interrupt objects created for LBI by WDFDEVICE 0x7648C930
4: FxPkgPnp::Dispatch - WDFDEVICE 0x7648C930 !devobj 0x89B117D0, IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x8994AB38
5: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit
6: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpHardwareAvailable from WdfDevStatePnpInitStarting
7: FxInterrupt::AssignResources - Is MSI? 0, MSI-ID 0, AffinityPolicy WdfIrqPolicyOneCloseProcessor, Priority WdfIrqPriorityUndefined, Group 0, Affinity 0x1, Irql 0x1b, Vector 0x30
8: FxPkgPnp::PnpMatchResources - Not enough interrupt objects created by WDFDEVICE 0x7648C930
9: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power policy state WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated
10: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStarted from FxIdleStopped
11: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerStartingCheckDeviceType from WdfDevStatePowerObjectCreated
12: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerD0Starting from WdfDevStatePowerStartingCheckDeviceType
13: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerD0StartingConnectInterrupt from WdfDevStatePowerD0Starting
14: FxInterrupt::Connect - IoConnectInterrupt(Ex) Failed, SpinLock 0x898EB348, Vector 0x30, IRQL 0x1b, Synchronize IRQL 0x1b, Mode 0x1, ShareVector False, ProcessorGroup 0, ProcessorEnableMask 0x1, FloatingSave False, 0xc000000d(STATUS_INVALID_PARAMETER)
15: FxPkgPnp::NotifyResourceObjectsD0 - WDFINTERRUPT 76714CF8 failed to connect, 0xc000000d(STATUS_INVALID_PARAMETER)
16: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerInitialConnectInterruptFailed from WdfDevStatePowerD0StartingConnectInterrupt
17: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerInitialPowerUpFailedDerefParent from WdfDevStatePowerInitialConnectInterruptFailed
18: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerInitialPowerUpFailed from WdfDevStatePowerInitialPowerUpFailedDerefParent
19: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStartedPowerFailed from FxIdleStarted
20: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStarted from FxIdleStartedPowerFailed
21: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerStopped from WdfDevStatePowerInitialPowerUpFailed
22: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power policy state WdfDevStatePwrPolStartingFailed from WdfDevStatePwrPolStarting
23: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStopped from FxIdleStarted
24: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power policy state WdfDevStatePwrPolStopped from WdfDevStatePwrPolStartingFailed
25: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpHardwareAvailablePowerPolicyFailed from WdfDevStatePnpHardwareAvailable
26: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFailedOwnHardware from WdfDevStatePnpHardwareAvailablePowerPolicyFailed
27: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFailed from WdfDevStatePnpFailedOwnHardware
28: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeManaged for all queues of WDFDEIVCE 0x7648C930
29: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFailedWaitForRemove from WdfDevStatePnpFailed
30: FxPkgPnp::Dispatch - WDFDEVICE 0x7648C930 !devobj 0x89B117D0, IRP_MJ_PNP, 0x00000002(IRP_MN_REMOVE_DEVICE) IRP 0x8994AB38
31: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpRemoved from WdfDevStatePnpFailedWaitForRemove
32: FxChildList::NotifyDeviceRemove - WDFCHILDLIST 764630C8: removing children
33: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpRemovedChildrenRemoved from WdfDevStatePnpRemoved
34: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFdoRemoved from WdfDevStatePnpRemovedChildrenRemoved
35: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeNonManaged for all queues of WDFDEIVCE 0x7648C930
36: FxIoTarget::WaitForDisposeEvent - WDFIOTARGET 7655EB98, Waiting on Dispose event BACFB99C
---- end of log ----
From the log
14: FxInterrupt::Connect - IoConnectInterrupt(Ex) Failed, SpinLock 0x898EB348, Vector 0x30, IRQL 0x1b, Synchronize IRQL 0x1b, Mode 0x1, ShareVector False, ProcessorGroup 0, ProcessorEnableMask 0x1, FloatingSave False, 0xc000000d(STATUS_INVALID_PARAMETER)
you are using add new hardware to create the device or are you updating the driver for an existing device. Need Jake’s warning about the interrupts and potential he assignment conflicts
d
debt from my phone
From: xxxxx@web.de
Sent: 10/25/2011 9:02 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WdfInterruptCreate causes WdfPowerDeviceD3Final for my device, please help
Dear all,
Thanks for your comments. Actually it took me ages to get the right debug output, but now I can get back to you with the requested information. As I said, I?m not that experienced. That?s why I?m really thankful that you spend your time with helping me.
Peter:
This is the part where I get my resources:
Function Parameter: WDFCMRESLIST ResourcesTranslated
PCM_PARTIAL_RESOURCE_DESCRIPTOR resourceTrans;
resourceTrans = WdfCmResourceListGetDescriptor(ResourcesTranslated, i);
Conerning the HPET spec I should at least get 3 interrupt objects. Maybe it is a question of conflicts?
I?m installing the driver via Hardware-Manager and generated .inf file.
Doron:
Please find the debug output here. I hope that your can help me finding the problem.
HPET driver loading?
<– DriverEntry
–> DeviceAdd
<– DeviceAdd
–> EvtPrepareHardware
Number of resources found: 3
Resource: 0 “Interrupt”
Interrupt level: 0x1b, Vector: 0x30
Resource: 1 “Interrupt” gelesen
Interrupt level: 0x13, Vector: 0x38
Resource: 2 physical memory
Register 0x0:fed00000 Laenge 1024.
–> GetHardwareControl
HPET memory mapped!
HPET-Status:
Register HPET_GENERAL_CAP_ID_OFFSET: 42949675116306945
Register HPET_GENERAL_CONFIG_OFFSET: 0
Register HPET_GENERAL_INTERRUPT_STATUS_OFFSET: 0
Register HPET_MAIN_COUNTER_VALUE_OFFSET: 0
Register HPET_TIMER0_CONFIG_CAP_OFFSET: 18446744069414584368
Register HPET_TIMER0_COMPERATOR_VALUE_OFFSET: 18446744073709551615
Register HPET_TIMER0_INTERRUPT_ROUTE_REGISTER_OFFSET: 0
Register HPET_TIMER1_CONFIG_CAP_OFFSET: 18446744069414584368
Register HPET_TIMER1_COMPERATOR_VALUE_OFFSET: 18446744073709551615
Register HPET_TIMER1_INTERRUPT_ROUTE_REGISTER_OFFSET: 0
Register HPET_TIMER2_CONFIG_CAP_OFFSET: 0
Register HPET_TIMER2_COMPERATOR_VALUE_OFFSET: 0
Register HPET_TIMER2_INTERRUPT_ROUTE_REGISTER_OFFSET: 0
<– GetHardwareControl
<– EvtPrepareHardware
–> EvtDeviceD0Entry
<– EvtDeviceD0Entry
–> EvtDeviceD0Exit
Status: WdfPowerDeviceD3Final
<– EvtDeviceD0Exit
–> EvtReleaseHardware
–> ReleaseHardwareControl
Hardware successfully released
<– ReleaseHardwareControl
<– EvtReleaseHardware
–> EvtDeviceContextCleanup
Break instruction exception - code 80000003 (first chance)
hpet!EvtDeviceContextCleanup+0x5b:
b762540b cc int 3
kd> !wdfkd.wdftmffile C:\Temp\trace\i386\Wdf01009.tmf
Set TMF file name is : ‘C:\Temp\trace\i386\Wdf01009.tmf’
kd> !load C:\Temp\wdfkd.dll
kd> !wdfkd.wdflogdump hpet
Trace searchpath is:
Trace format prefix is: %7!u!: %!FUNC! -
TMF file used for formatting log is: C:\Temp\trace\i386\Wdf01009.tmf
Log at 8994f000
Gather log: Please wait, this may take a moment (reading 4032 bytes).
% read so far … 10, 20, 30, 100
There are 36 log entries
— start of log —
1: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated
2: imp_WdfControlFinishInitializing - WDFDEVICE 7648C930 not a control device
3: FxPkgPnp::FilterResourceRequirements - Not enough interrupt objects created for LBI by WDFDEVICE 0x7648C930
4: FxPkgPnp::Dispatch - WDFDEVICE 0x7648C930 !devobj 0x89B117D0, IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x8994AB38
5: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit
6: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpHardwareAvailable from WdfDevStatePnpInitStarting
7: FxInterrupt::AssignResources - Is MSI? 0, MSI-ID 0, AffinityPolicy WdfIrqPolicyOneCloseProcessor, Priority WdfIrqPriorityUndefined, Group 0, Affinity 0x1, Irql 0x1b, Vector 0x30
8: FxPkgPnp::PnpMatchResources - Not enough interrupt objects created by WDFDEVICE 0x7648C930
9: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power policy state WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated
10: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStarted from FxIdleStopped
11: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerStartingCheckDeviceType from WdfDevStatePowerObjectCreated
12: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerD0Starting from WdfDevStatePowerStartingCheckDeviceType
13: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerD0StartingConnectInterrupt from WdfDevStatePowerD0Starting
14: FxInterrupt::Connect - IoConnectInterrupt(Ex) Failed, SpinLock 0x898EB348, Vector 0x30, IRQL 0x1b, Synchronize IRQL 0x1b, Mode 0x1, ShareVector False, ProcessorGroup 0, ProcessorEnableMask 0x1, FloatingSave False, 0xc000000d(STATUS_INVALID_PARAMETER)
15: FxPkgPnp::NotifyResourceObjectsD0 - WDFINTERRUPT 76714CF8 failed to connect, 0xc000000d(STATUS_INVALID_PARAMETER)
16: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerInitialConnectInterruptFailed from WdfDevStatePowerD0StartingConnectInterrupt
17: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerInitialPowerUpFailedDerefParent from WdfDevStatePowerInitialConnectInterruptFailed
18: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerInitialPowerUpFailed from WdfDevStatePowerInitialPowerUpFailedDerefParent
19: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStartedPowerFailed from FxIdleStarted
20: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStarted from FxIdleStartedPowerFailed
21: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering Power State WdfDevStatePowerStopped from WdfDevStatePowerInitialPowerUpFailed
22: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power policy state WdfDevStatePwrPolStartingFailed from WdfDevStatePwrPolStarting
23: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power idle state FxIdleStopped from FxIdleStarted
24: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering power policy state WdfDevStatePwrPolStopped from WdfDevStatePwrPolStartingFailed
25: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpHardwareAvailablePowerPolicyFailed from WdfDevStatePnpHardwareAvailable
26: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFailedOwnHardware from WdfDevStatePnpHardwareAvailablePowerPolicyFailed
27: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFailed from WdfDevStatePnpFailedOwnHardware
28: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeManaged for all queues of WDFDEIVCE 0x7648C930
29: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFailedWaitForRemove from WdfDevStatePnpFailed
30: FxPkgPnp::Dispatch - WDFDEVICE 0x7648C930 !devobj 0x89B117D0, IRP_MJ_PNP, 0x00000002(IRP_MN_REMOVE_DEVICE) IRP 0x8994AB38
31: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpRemoved from WdfDevStatePnpFailedWaitForRemove
32: FxChildList::NotifyDeviceRemove - WDFCHILDLIST 764630C8: removing children
33: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpRemovedChildrenRemoved from WdfDevStatePnpRemoved
34: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7648C930 !devobj 0x89B117D0 entering PnP State WdfDevStatePnpFdoRemoved from WdfDevStatePnpRemovedChildrenRemoved
35: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeNonManaged for all queues of WDFDEIVCE 0x7648C930
36: FxIoTarget::WaitForDisposeEvent - WDFIOTARGET 7655EB98, Waiting on Dispose event BACFB99C
---- end of log ----
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
I’m updating the driver for an existing device.
jan
Are you sure? What is the device instance ID of the device in device manager?
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@web.de
Sent: Tuesday, October 25, 2011 11:42 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WdfInterruptCreate causes WdfPowerDeviceD3Final for my device, please help
I’m updating the driver for an existing device.
jan
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
What I do for installing the driver is:
Computer -> properties -> hardware manager -> view -> resources as connection -> irq -> (isa) 0x0(00) says High Precission Event Timer -> update driver -> select my new driver and install it.
If I understand you right the ID is: ACPI\PNP0103\0
Jan
Machine.inf says:
%*PNP0103.DeviceDesc% = NO_DRV_HPET, *PNP0103 ; HPET
; NO_DRV Variation - MUTEing for HPET
[NO_DRV_HPET]
AddReg = NO_DRV_HPET_REG
[NO_DRV_HPET.Services]
AddService = , %SPSVCINST_ASSOCSERVICE% ; null service install
[NO_DRV_HPET_REG]
HKR,ResourcePickerExceptions,0,“MEM:HAL,MBRES,*;IRQ:HAL,MBRES,*”
HKR,ResourcePickerTags,0,“MBRES”
As far as I understand it installs something like a place holdet for the HPET.
So the system is not using it, IRQ handling is going to list it on 0 and 8.
In my understanding there should me no conflict at all.
By the way, I have a second machine here. There is a totally different situation. IRQ 0 and 8 is placed with CMOS and another timer. I could understand that in this case a conlict can occour, But on my test machine it should be fine, shouldn’t it ?