PCIe Downstream Port can't enter D3 after add-on device enetr D3

I implement a WDF driver on add-on pcie device base on driver sample code. I set the idle policy by WdfDeviceAssignS0IdleSettings() with IdleTimeout(10-sec),then device can enter D3,but PCIe Downstream Port can't enter D3. If i need DSP also enter D3 state, other features/policy or device attributes i need to implement or setting? thanks for your help..

Does your device include a bridge? Because from the host perspective, YOU are the downstream port.

It's complicated, right?

Are you saying that your driver gets called at EvtDeviceD0Exit targeting D3 state... but that the slot doesn't actually get powered off? Because that would depend on what other devices your device is sharing the power plane with.

My driver(Hi) gets called at EvtDeviceD0Exit and Hi device enter D3,but Pcie downstream device(pci.sys) don't.

Yes! but other downstream port ok

With respect: I was confused before seeing those diagrams. Now I’m really confused. I think you're putting some device into D3 from its driver (that’s what the reference to RTD3 means to me). Then you expect a peer to also go into D3? :face_with_raised_eyebrow:

Sorry, but from what little you’ve explained so far, I’m not going to be able to help you.

Things you putting some device into D3 from its driver. Then you expect a peer to also go into D3? Yes, device will wake after device wake up event occur. On my PC system, the PCIe DownStream Device 2 can enter D3 after xHC host(driver installed) enter sleep state. And PCIe DownStream Device 0/1 can also enter D3 state after device connected to port0/port1 is in sleep state. we except to have the same behavior like these. thanks!