Jump-start your project by learning from devs who
write Windows drivers and file systems every day.
Take an OSR seminar!

OSR is Hiring! Click here to find out more.

Windows Internals & Software Drivers Lab, Santa Clara, CA 5-9 August, 2013
Kernel Debugging & Crash Analysis for Windows Lab, Santa Clara, CA 9-13 September, 2013
Upcoming OSR Seminars:
Writing WDF Drivers for Windows Lab, Boston, MA 7-11 October, 2013
Developing File Systems for Windows, Seattle, WA 5-8 November, 2013


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 7  
29 Jun 12 18:56
ntdev member 133087
xxxxxx@commtech-fastcom.com
Join Date:
Posts To This List: 5
WDF, PDO Stuck At WdfDevStatePnpInit

To begin, to make sure I am doing something reasonable here is my scenario. I have a PCI card that has two identical "ports" on it that share the same IO space. I would like to create a KMDF driver that represents both of the ports in the device manager. Currently, I am creating an FDO in the EvtDeviceAdd routine to represent the card. Then creating two raw PDO's to represent each of the "ports". Everything looks like it is going fine except the PDO's get stuck at WdfDevStatePnpInit. WDFDRIVER: 0x79d0f3a0 !WDFDEVICE 0x79ad7768 (FDO) Pnp/Power State: WdfDevStatePnpStarted, WdfDevStatePowerD0, WdfDevStatePwrPolStarted context: dt 0x86528a10 FSCC_CARD (size is 0x1bc bytes) EvtCleanupCallback a47595f0 !WDFDEVICE 0x79a484d8 (PDO) Pnp/Power State: WdfDevStatePnpInit, WdfDevStatePowerObjectCreated, WdfDevStatePwrPolObjectCreated context: dt 0x865b7ca0 FSCC_PORT (size is 0xf8 bytes) EvtCleanupCallback a475a1e0 !WDFDEVICE 0x79b58598 (PDO) Pnp/Power State: WdfDevStatePnpInit, WdfDevStatePowerObjectCreated, WdfDevStatePwrPolObjectCreated context: dt 0x864a7be0 FSCC_PORT (size is 0xf8 bytes) I'm still unsure whether this is the correct way of doing things since both of the "ports" are not individual PnP devices but more like psuedo devices on the main PnP card. Here is a the process in code that I am taking. I can copy more information if needed. WdfDeviceInitSetPowerPolicyOwnership(DeviceInit, TRUE); WdfDeviceCreate(&DeviceInit, &attributes, &device); DeviceInit = WdfPdoInitAllocate(card->device); WdfPdoInitAssignRawDevice(DeviceInit, (const LPGUID)&GUID_DEVCLASS_FSCC); WdfDeviceInitAssignName(DeviceInit, &device_name); WdfDeviceInitAssignSDDLString(DeviceInit, &SDDL_DEVOBJ_SYS_ALL_ADM_ALL); WdfDeviceInitSetDeviceType(DeviceInit, FILE_DEVICE_SERIAL_PORT); WdfDeviceInitSetExclusive(DeviceInit, TRUE); WdfPdoInitAssignDeviceID(DeviceInit, &device_id); WdfPdoInitAssignInstanceID(DeviceInit, &instance_id); WdfPdoInitAssignContainerID(DeviceInit, &container_id); WdfPdoInitAddDeviceText(DeviceInit, &description, &location, 0x409); WdfDeviceCreate(&DeviceInit, &attributes, &device); WdfFdoAddStaticChild(device, port->device); //Repeat from WdfPdoInitAllocate for 2nd device. Is there anything additional I need to do to get it to continue registers the PDO? Or am I using the wrong approach since the "ports" are not individual PnP units? Thank you for any help you can give me. Will -- William Fagan Commtech, Inc. Voice: 316-636-1131 Fax: 316-636-1163 http://www.commtech-fastcom.com --
  Message 2 of 7  
29 Jun 12 19:03
Doron Holan
xxxxxx@microsoft.com
Join Date: 08 Sep 2005
Posts To This List: 8286
RE: WDF, PDO Stuck At WdfDevStatePnpInit

Do the children show up in device manager when you view by connection? What does !wdfkd.wdflogdump <yourdriver> say? d From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Will Fagan Sent: Friday, June 29, 2012 3:56 PM To: Windows System Software Devs Interest List Subject: [ntdev] WDF, PDO Stuck At WdfDevStatePnpInit To begin, to make sure I am doing something reasonable here is my scenario. I have a PCI card that has two identical "ports" on it that share the same IO space. I would like to create a KMDF driver that represents both of the ports in the device manager. Currently, I am creating an FDO in the EvtDeviceAdd routine to represent the card. Then creating two raw PDO's to represent each of the "ports". Everything looks like it is going fine except the PDO's get stuck at WdfDevStatePnpInit. WDFDRIVER: 0x79d0f3a0 !WDFDEVICE 0x79ad7768 (FDO) Pnp/Power State: WdfDevStatePnpStarted, WdfDevStatePowerD0, WdfDevStatePwrPolStarted context: dt 0x86528a10 FSCC_CARD (size is 0x1bc bytes) EvtCleanupCallback a47595f0 !WDFDEVICE 0x79a484d8 (PDO) Pnp/Power State: WdfDevStatePnpInit, WdfDevStatePowerObjectCreated, WdfDevStatePwrPolObjectCreated context: dt 0x865b7ca0 FSCC_PORT (size is 0xf8 bytes) EvtCleanupCallback a475a1e0 !WDFDEVICE 0x79b58598 (PDO) Pnp/Power State: WdfDevStatePnpInit, WdfDevStatePowerObjectCreated, WdfDevStatePwrPolObjectCreated context: dt 0x864a7be0 FSCC_PORT (size is 0xf8 bytes) I'm still unsure whether this is the correct way of doing things since both of the "ports" are not individual PnP devices but more like psuedo devices on the main PnP card. Here is a the process in code that I am taking. I can copy more information if needed. WdfDeviceInitSetPowerPolicyOwnership(DeviceInit, TRUE); WdfDeviceCreate(&DeviceInit, &attributes, &device); DeviceInit = WdfPdoInitAllocate(card->device); WdfPdoInitAssignRawDevice(DeviceInit, (const LPGUID)&GUID_DEVCLASS_FSCC); WdfDeviceInitAssignName(DeviceInit, &device_name); WdfDeviceInitAssignSDDLString(DeviceInit, &SDDL_DEVOBJ_SYS_ALL_ADM_ALL); WdfDeviceInitSetDeviceType(DeviceInit, FILE_DEVICE_SERIAL_PORT); WdfDeviceInitSetExclusive(DeviceInit, TRUE); WdfPdoInitAssignDeviceID(DeviceInit, &device_id); WdfPdoInitAssignInstanceID(DeviceInit, &instance_id); WdfPdoInitAssignContainerID(DeviceInit, &container_id); WdfPdoInitAddDeviceText(DeviceInit, &description, &location, 0x409); WdfDeviceCreate(&DeviceInit, &attributes, &device); WdfFdoAddStaticChild(device, port->device); //Repeat from WdfPdoInitAllocate for 2nd device. Is there anything additional I need to do to get it to continue registers the PDO? Or am I using the wrong approach since the "ports" are not individual PnP units? Thank you for any help you can give me. Will -- William Fagan Commtech, Inc. Voice: 316-636-1131 Fax: 316-636-1163 http://www.commtech-fastcom.com<http://www.commtech-fastcom.com/> --- 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=3DListServer --
  Message 3 of 7  
29 Jun 12 21:16
ntdev member 133087
xxxxxx@commtech-fastcom.com
Join Date:
Posts To This List: 5
Re: WDF, PDO Stuck At WdfDevStatePnpInit

Thank you for your quick reply. Life saver! The children don't show up when I go to 'view by children'. Here is the log dump. Below I've added some additional WinDbg stuff that I couldn't attach to the last email. *!wdflogdump fscc* There are 35 log entries --- start of log --- 1: FxIFRStart - FxIFR logging started 2: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated 3: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79B58598 !devobj 0x86363730 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated 4: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79A484D8 !devobj 0x86376C80 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated 5: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x86380930 6: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit 7: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpHardwareAvailable from WdfDevStatePnpInitStarting 8: FxPkgPnp::PnpMatchResources - Not enough interrupt objects created by WDFDEVICE 0x79AD7768 9: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated 10: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleStarted from FxIdleStopped 11: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerStartingCheckDeviceType from WdfDevStatePowerObjectCreated 12: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0Starting from WdfDevStatePowerStartingCheckDeviceType 13: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0StartingConnectInterrupt from WdfDevStatePowerD0Starting 14: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0StartingDmaEnable from WdfDevStatePowerD0StartingConnectInterrupt 15: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0StartingStartSelfManagedIo from WdfDevStatePowerD0StartingDmaEnable 16: FxPkgIo::ResumeProcessingForPower - Power resume all queues of WDFDEVICE 0x79AD7768 17: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleStartedPowerUp from FxIdleStarted 18: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleDisabled from FxIdleStartedPowerUp 19: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerDecideD0State from WdfDevStatePowerD0StartingStartSelfManagedIo 20: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0 from WdfDevStatePowerDecideD0State 21: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStartingPoweredUp from WdfDevStatePwrPolStarting 22: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStartingSucceeded from WdfDevStatePwrPolStartingPoweredUp 23: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStartingDecideS0Wake from WdfDevStatePwrPolStartingSucceeded 24: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStarted from WdfDevStatePwrPolStartingDecideS0Wake 25: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleDisabled from FxIdleDisabled 26: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpEnableInterfaces from WdfDevStatePnpHardwareAvailable 27: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpStarted from WdfDevStatePnpEnableInterfaces 28: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000014(IRP_MN_QUERY_PNP_DEVICE_STATE) IRP 0x86380930 29: FxPkgFdo::HandleQueryPnpDeviceStateCompletion - WDFDEVICE 0x79AD7768 !devobj 0x86547280 returning PNP_DEVICE_STATE 0x0 IRP 0x86380930 30: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000007(IRP_MN_QUERY_DEVICE_RELATIONS) type BusRelations IRP 0x86380930 31: FxChildList::ProcessBusRelations - PDO created successfully, WDFDEVICE 79B58598 !devobj 86363730 32: FxChildList::ProcessBusRelations - PDO created successfully, WDFDEVICE 79A484D8 !devobj 86376C80 33: FxPkgPnp::HandleQueryBusRelations - WDFDEVICE 79AD7768 returning 2 devices in relations B92183F8 34: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000007(IRP_MN_QUERY_DEVICE_RELATIONS) type BusRelations IRP 0x87FED510 35: FxPkgPnp::HandleQueryBusRelations - WDFDEVICE 79AD7768 returning 2 devices in relations B92183F8 ---- end of log ---- *!wdfdevice 0x79ad7768 fff **(The FDO)* lkd> !wdfdevice 0x79ad7768 fff Dumping WDFDEVICE 0x79ad7768 ================================= WDM PDEVICE_OBJECTs: self 86547280, attached 86a30560, pdo 86a30560 Pnp state: 119 ( WdfDevStatePnpStarted ) Power state: 307 ( WdfDevStatePowerD0 ) Power Pol state: 565 ( WdfDevStatePwrPolStarted ) Default WDFIOTARGET: 79a80d00 Device is the power policy owner for the stack No pended pnp, power, wait-wake irps Pnp state history: [0] WdfDevStatePnpObjectCreated (0x100) [1] WdfDevStatePnpInit (0x105) [2] WdfDevStatePnpInitStarting (0x106) [3] WdfDevStatePnpHardwareAvailable (0x108) [4] WdfDevStatePnpEnableInterfaces (0x109) [5] WdfDevStatePnpStarted (0x119) Power state history: [0] WdfDevStatePowerObjectCreated (0x300) [1] WdfDevStatePowerStartingCheckDeviceType (0x316) [2] WdfDevStatePowerD0Starting (0x30f) [3] WdfDevStatePowerD0StartingConnectInterrupt (0x310) [4] WdfDevStatePowerD0StartingDmaEnable (0x311) [5] WdfDevStatePowerD0StartingStartSelfManagedIo (0x312) [6] WdfDevStatePowerDecideD0State (0x313) [7] WdfDevStatePowerD0 (0x307) Power policy state history: [0] WdfDevStatePwrPolObjectCreated (0x500) [1] WdfDevStatePwrPolStarting (0x501) [2] WdfDevStatePwrPolStartingPoweredUp (0x583) [3] WdfDevStatePwrPolStartingSucceeded (0x502) [4] WdfDevStatePwrPolStartingDecideS0Wake (0x504) [5] WdfDevStatePwrPolStarted (0x565) Idle state history: [0] FxIdleStarted (0x2) [1] FxIdleStartedPowerUp (0x3) [2] FxIdleDisabled (0x5) [3] FxIdleDisabled (0x5) Power references: 0 S0Idle policy not configured SxWake policy not configured Power Capabilities: DeviceWake[PowerSystemWorking]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemSleeping1]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemSleeping2]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemSleeping3]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemHibernate]: DeviceWakeDepthNotWakeable SystemWake: PowerSystemUnspecified S-D mapping: S0->PowerDeviceD0 S1->PowerDeviceUnspecified S2->PowerDeviceUnspecified S3->PowerDeviceD3 S4->PowerDeviceD3 S5->PowerDeviceD3 IdealDxStateForSx: PowerDeviceD3 EvtDeviceD0Entry: (a475a1c0) EvtDeviceD0Exit: (a47595d0) EvtDevicePrepareHardware: (a47598c0) EvtDeviceReleaseHardware: (a47599d0) No file-object callbacks assigned No in-caller context callbacks assigned No preprocess callbacks assigned No dispatch callbacks assigned WDFCHILDLIST Handles: !WDFCHILDLIST 0x79baafe8 (static PDO list) Properties: SynchronizationScope: WdfSynchronizationScopeNone ExecutionLevel: WdfExecutionLevelDispatch IoType: WdfDeviceIoBuffered FileObjectClass: WdfFileObjectNotRequired Exclusive: No AutoForwardCleanupClose: No DefaultIoPriorityBoost: 0 *!wdfdevice 0x79a484d8 fff* (The PDO) lkd> !wdfdevice 0x79a484d8 fff Dumping WDFDEVICE 0x79a484d8 ================================= WDM PDEVICE_OBJECTs: self 86376c80 Pnp state: 105 ( WdfDevStatePnpInit ) Power state: 300 ( WdfDevStatePowerObjectCreated ) Power Pol state: 500 ( WdfDevStatePwrPolObjectCreated ) Parent WDFDEVICE 79ad7768 Parent states: Pnp state: 119 ( WdfDevStatePnpStarted ) Power state: 307 ( WdfDevStatePowerD0 ) Power Pol state: 565 ( WdfDevStatePwrPolStarted ) Device is the power policy owner for the stack No pended pnp, power, wait-wake irps Pnp state history: [0] WdfDevStatePnpObjectCreated (0x100) [1] WdfDevStatePnpInit (0x105) Power state history: [0] WdfDevStatePowerObjectCreated (0x300) Power policy state history: [0] WdfDevStatePwrPolObjectCreated (0x500) Idle state history: Power references: 0 S0Idle policy not configured SxWake policy not configured Power Capabilities: could not retrieve constant name of 17 in enum _DEVICE_WAKE_DEPTH, hr 0x80004005 DeviceWake[PowerSystemSleeping1]: DeviceWakeDepthD0 could not retrieve constant name of 255 in enum _DEVICE_WAKE_DEPTH, hr 0x80004005 could not retrieve constant name of 49 in enum _DEVICE_WAKE_DEPTH, hr 0x80004005 DeviceWake[PowerSystemHibernate]: DeviceWakeDepthD0 could not retrieve constant name of 65 in enum _SYSTEM_POWER_STATE, hr 0x80004005 SystemWake: PowerSystemS64 S-D mapping: S0->PowerDeviceD0 S1->PowerDeviceD3 S2->PowerDeviceD3 S3->PowerDeviceD3 S4->PowerDeviceD3 S5->PowerDeviceD3 IdealDxStateForSx: PowerDeviceD3 EvtDeviceD0Entry: (a475a1c0) EvtDevicePrepareHardware: (a475ac20) EvtDeviceResourceRequirementsQuery: (a4759a40) No file-object callbacks assigned No in-caller context callbacks assigned No preprocess callbacks assigned No dispatch callbacks assigned Properties: Sync
  Message 4 of 7  
02 Jul 12 12:55
ntdev member 133087
xxxxxx@commtech-fastcom.com
Join Date:
Posts To This List: 5
Re: WDF, PDO Stuck At WdfDevStatePnpInit

It seems like since it isn't a real device that can generate power events it isn't triggering an event that continues initialization passed the WdfDevStatePnpInit routine. But I don't really know. Will On Fri, Jun 29, 2012 at 8:15 PM, Will Fagan <xxxxx@commtech-fastcom.com>wrote: > Thank you for your quick reply. Life saver! > > The children don't show up when I go to 'view by children'. > > Here is the log dump. Below I've added some additional WinDbg stuff that I > couldn't attach to the last email. > > *!wdflogdump fscc* > There are 35 log entries > --- start of log --- <...excess quoted lines suppressed...>
  Message 5 of 7  
03 Jul 12 02:06
Doron Holan
xxxxxx@microsoft.com
Join Date: 08 Sep 2005
Posts To This List: 8286
RE: WDF, PDO Stuck At WdfDevStatePnpInit

No, that's not it. Looks like the pdos have been created and reported to pnp (last two lines in the log). That is goodness. Did you report hardware or compat ids for the pdos? From the original code snippet, you didn't. One of these is needed to make an id match with your inf (you need a second one of these if the children are in the ports class) to load the fdo on these pdos. If you don't want an fdo on them and they should be functional, mark the pdos as raw. Btw, you should probably not give them their own container id, since they are a physical part of the parent they should stay in the parent container. d debt from my phone ________________________________ From: Will Fagan Sent: 7/2/2012 9:56 AM To: Windows System Software Devs Interest List Subject: Re: [ntdev] WDF, PDO Stuck At WdfDevStatePnpInit It seems like since it isn't a real device that can generate power events it isn't triggering an event that continues initialization passed the WdfDevStatePnpInit routine. But I don't really know. Will On Fri, Jun 29, 2012 at 8:15 PM, Will Fagan <xxxxx@commtech-fastcom.com<mailto:xxxxx@commtech-fastcom.com>> wrote: Thank you for your quick reply. Life saver! The children don't show up when I go to 'view by children'. Here is the log dump. Below I've added some additional WinDbg stuff that I couldn't attach to the last email. !wdflogdump fscc There are 35 log entries --- start of log --- 1: FxIFRStart - FxIFR logging started 2: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated 3: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79B58598 !devobj 0x86363730 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated 4: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79A484D8 !devobj 0x86376C80 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated 5: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x86380930 6: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit 7: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpHardwareAvailable from WdfDevStatePnpInitStarting 8: FxPkgPnp::PnpMatchResources - Not enough interrupt objects created by WDFDEVICE 0x79AD7768 9: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated 10: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleStarted from FxIdleStopped 11: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerStartingCheckDeviceType from WdfDevStatePowerObjectCreated 12: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0Starting from WdfDevStatePowerStartingCheckDeviceType 13: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0StartingConnectInterrupt from WdfDevStatePowerD0Starting 14: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0StartingDmaEnable from WdfDevStatePowerD0StartingConnectInterrupt 15: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0StartingStartSelfManagedIo from WdfDevStatePowerD0StartingDmaEnable 16: FxPkgIo::ResumeProcessingForPower - Power resume all queues of WDFDEVICE 0x79AD7768 17: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleStartedPowerUp from FxIdleStarted 18: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleDisabled from FxIdleStartedPowerUp 19: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerDecideD0State from WdfDevStatePowerD0StartingStartSelfManagedIo 20: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering Power State WdfDevStatePowerD0 from WdfDevStatePowerDecideD0State 21: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStartingPoweredUp from WdfDevStatePwrPolStarting 22: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStartingSucceeded from WdfDevStatePwrPolStartingPoweredUp 23: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStartingDecideS0Wake from WdfDevStatePwrPolStartingSucceeded 24: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power policy state WdfDevStatePwrPolStarted from WdfDevStatePwrPolStartingDecideS0Wake 25: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering power idle state FxIdleDisabled from FxIdleDisabled 26: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpEnableInterfaces from WdfDevStatePnpHardwareAvailable 27: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79AD7768 !devobj 0x86547280 entering PnP State WdfDevStatePnpStarted from WdfDevStatePnpEnableInterfaces 28: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000014(IRP_MN_QUERY_PNP_DEVICE_STATE) IRP 0x86380930 29: FxPkgFdo::HandleQueryPnpDeviceStateCompletion - WDFDEVICE 0x79AD7768 !devobj 0x86547280 returning PNP_DEVICE_STATE 0x0 IRP 0x86380930 30: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000007(IRP_MN_QUERY_DEVICE_RELATIONS) type BusRelations IRP 0x86380930 31: FxChildList::ProcessBusRelations - PDO created successfully, WDFDEVICE 79B58598 !devobj 86363730 32: FxChildList::ProcessBusRelations - PDO created successfully, WDFDEVICE 79A484D8 !devobj 86376C80 33: FxPkgPnp::HandleQueryBusRelations - WDFDEVICE 79AD7768 returning 2 devices in relations B92183F8 34: FxPkgPnp::Dispatch - WDFDEVICE 0x79AD7768 !devobj 0x86547280, IRP_MJ_PNP, 0x00000007(IRP_MN_QUERY_DEVICE_RELATIONS) type BusRelations IRP 0x87FED510 35: FxPkgPnp::HandleQueryBusRelations - WDFDEVICE 79AD7768 returning 2 devices in relations B92183F8 ---- end of log ---- !wdfdevice 0x79ad7768 fff (The FDO) lkd> !wdfdevice 0x79ad7768 fff Dumping WDFDEVICE 0x79ad7768 ==========================3D======= WDM PDEVICE_OBJECTs: self 86547280, attached 86a30560, pdo 86a30560 Pnp state: 119 ( WdfDevStatePnpStarted ) Power state: 307 ( WdfDevStatePowerD0 ) Power Pol state: 565 ( WdfDevStatePwrPolStarted ) Default WDFIOTARGET: 79a80d00 Device is the power policy owner for the stack No pended pnp, power, wait-wake irps Pnp state history: [0] WdfDevStatePnpObjectCreated (0x100) [1] WdfDevStatePnpInit (0x105) [2] WdfDevStatePnpInitStarting (0x106) [3] WdfDevStatePnpHardwareAvailable (0x108) [4] WdfDevStatePnpEnableInterfaces (0x109) [5] WdfDevStatePnpStarted (0x119) Power state history: [0] WdfDevStatePowerObjectCreated (0x300) [1] WdfDevStatePowerStartingCheckDeviceType (0x316) [2] WdfDevStatePowerD0Starting (0x30f) [3] WdfDevStatePowerD0StartingConnectInterrupt (0x310) [4] WdfDevStatePowerD0StartingDmaEnable (0x311) [5] WdfDevStatePowerD0StartingStartSelfManagedIo (0x312) [6] WdfDevStatePowerDecideD0State (0x313) [7] WdfDevStatePowerD0 (0x307) Power policy state history: [0] WdfDevStatePwrPolObjectCreated (0x500) [1] WdfDevStatePwrPolStarting (0x501) [2] WdfDevStatePwrPolStartingPoweredUp (0x583) [3] WdfDevStatePwrPolStartingSucceeded (0x502) [4] WdfDevStatePwrPolStartingDecideS0Wake (0x504) [5] WdfDevStatePwrPolStarted (0x565) Idle state history: [0] FxIdleStarted (0x2) [1] FxIdleStartedPowerUp (0x3) [2] FxIdleDisabled (0x5) [3] FxIdleDisabled (0x5) Power references: 0 S0Idle policy not configured SxWake policy not configured Power Capabilities: DeviceWake[PowerSystemWorking]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemSleeping1]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemSleeping2]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemSleeping3]: DeviceWakeDepthNotWakeable DeviceWake[PowerSystemHibernate]: DeviceWakeDepthNotWakeable SystemWake: PowerSystemUnspecified S-D mapping: S0->PowerDeviceD0 S1->PowerDeviceUnspecified S2->PowerDeviceUnspecified S3->PowerDeviceD3 S4->PowerDeviceD3 S5->PowerDeviceD3 IdealDxStateForSx: PowerDeviceD3 EvtDeviceD0Entry: (a475a1c0) EvtDeviceD0Exit: (a47595d0) EvtDevicePrepareHardware: (a47598c0) EvtDeviceReleaseHardware: (a47599d0) No file-object callbacks assigned No in-caller context callbacks assigned No preprocess callbacks assigned No dispatch callbacks assigned WDFCHILDLIST Handles: !WDFCHILDLIST 0x79baafe8 (static PDO list) Properties: SynchronizationScope: WdfSynchronizationScopeNone ExecutionLevel: WdfExecutionLevelDispatch IoType: WdfDeviceIoBuffered FileObjectClass: WdfFileObjectNotRequired Exclusive: No AutoForwardCleanupClose: No DefaultIoPriorityBoost: 0 !wdfdevice 0x79a484d8 fff (The PDO) lkd> !wdfdevice 0x79a484d8 fff Dumping WDFDEVICE 0x79a484d8 ==========================3D======= WDM PDEVICE_OBJECTs: self 86376c80 Pnp state: 105 ( WdfDevStatePnpInit ) Power state: 300 ( WdfDevStatePowerObjectCreated ) Power Pol state: 500 ( WdfDevStatePwrPolObjectCreated ) Parent WDFDEVICE 79ad7768 Parent states: Pnp state: 119 ( WdfDevStatePnpStarted ) Power state: 307 ( WdfDevStatePowerD0 ) Power Pol state: 565 ( Wdf
  Message 6 of 7  
05 Jul 12 10:33
ntdev member 133087
xxxxxx@commtech-fastcom.com
Join Date:
Posts To This List: 5
Re: WDF, PDO Stuck At WdfDevStatePnpInit

Thanks for the things to try! I will report back. Will On Tue, Jul 3, 2012 at 1:06 AM, Doron Holan <xxxxx@microsoft.com>wrote: > No, that's not it. Looks like the pdos have been created and reported to > pnp (last two lines in the log). That is goodness. Did you report hardware > or compat ids for the pdos? From the original code snippet, you didn't. One > of these is needed to make an id match with your inf (you need a second one > of these if the children are in the ports class) to load the fdo on these > pdos. If you don't want an fdo on them and they should be functional, mark > the pdos as raw. > > Btw, you should probably not give them their own container id, since they > are a physical part of the parent they should stay in the parent container. <...excess quoted lines suppressed...>
  Message 7 of 7  
06 Jul 12 10:36
ntdev member 133087
xxxxxx@commtech-fastcom.com
Join Date:
Posts To This List: 5
Re: WDF, PDO Stuck At WdfDevStatePnpInit

A quick update, going off your last email I was able to get it working. I'm going to play around with it a bit more to fully understand what is going on and I'll post a better reply to help future people who run into the same issue. Thank you for your help! Will On Tue, Jul 3, 2012 at 1:06 AM, Doron Holan <xxxxx@microsoft.com>wrote: > No, that's not it. Looks like the pdos have been created and reported to > pnp (last two lines in the log). That is goodness. Did you report hardware > or compat ids for the pdos? From the original code snippet, you didn't. One > of these is needed to make an id match with your inf (you need a second one > of these if the children are in the ports class) to load the fdo on these > pdos. If you don't want an fdo on them and they should be functional, mark > the pdos as raw. > > Btw, you should probably not give them their own container id, since they > are a physical part of the parent they should stay in the parent container. <...excess quoted lines suppressed...>
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 08:37.


Copyright ©2012, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license