From: Lost Soul on
Hi,

I'm having a NDIS ( WDM ) driver which has USB ( KMDF ) as the lower
edge.

For NDIS I've taken the NDISWDM sample from the DDK and for the USB
part I've taken the USBSAMP.

The device is working fine and I'm able to send/receive data.
But when I try to suspend the system, I get a BugCheck 10D, {d,
83b93110, 83c68e28, 8400cf08}.

I've tried to release the "Power Policy Ownership" in the USB driver
as I read in some posts that a miniport driver can't be a PPO. But
still I get the same bugcheck.

Please somebody point out what can be wrong.

Further I've some doubts:-

1. Since my USB part uses power manged queues, can that lead to a
problem ( driver not being the PPO and upper part being WDM )

2. During initialization and shutdown, I can see my power event
callbacks D0Entry and D0Exit getting called, but not during standby.

3. Is this driver architecthure valid for WHQL certification.

Request to provide some pointers to start the debugging.

Thanks
From: Doron Holan [MSFT] on
why do you have 2 drivers? why not use KMDF in miniport mode and just have
an NDIS-KMDF miniport? how did you relinquish power policy ownership in the
lower filter?

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"Lost Soul" <shaktisinha(a)gmail.com> wrote in message
news:ca5a794b-e13e-4dab-ae2d-2619f91f994b(a)z3g2000yqz.googlegroups.com...
> Hi,
>
> I'm having a NDIS ( WDM ) driver which has USB ( KMDF ) as the lower
> edge.
>
> For NDIS I've taken the NDISWDM sample from the DDK and for the USB
> part I've taken the USBSAMP.
>
> The device is working fine and I'm able to send/receive data.
> But when I try to suspend the system, I get a BugCheck 10D, {d,
> 83b93110, 83c68e28, 8400cf08}.
>
> I've tried to release the "Power Policy Ownership" in the USB driver
> as I read in some posts that a miniport driver can't be a PPO. But
> still I get the same bugcheck.
>
> Please somebody point out what can be wrong.
>
> Further I've some doubts:-
>
> 1. Since my USB part uses power manged queues, can that lead to a
> problem ( driver not being the PPO and upper part being WDM )
>
> 2. During initialization and shutdown, I can see my power event
> callbacks D0Entry and D0Exit getting called, but not during standby.
>
> 3. Is this driver architecthure valid for WHQL certification.
>
> Request to provide some pointers to start the debugging.
>
> Thanks

From: Lost Soul on
On Apr 16, 10:17 pm, "Doron Holan [MSFT]"
<doron.ho...(a)online.microsoft.com> wrote:
> why do you have 2 drivers? why not use KMDF in miniport mode and just have
> an NDIS-KMDF miniport?  how did you relinquish power policy ownership in the
> lower filter?
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
> "Lost Soul" <shaktisi...(a)gmail.com> wrote in message
>
> news:ca5a794b-e13e-4dab-ae2d-2619f91f994b(a)z3g2000yqz.googlegroups.com...
>
> > Hi,
>
> > I'm having a NDIS ( WDM ) driver which has USB ( KMDF ) as the lower
> > edge.
>
> > For NDIS I've taken the NDISWDM sample from the DDK and for the USB
> > part I've taken the USBSAMP.
>
> > The device is working fine and I'm able to send/receive data.
> > But when I try to suspend the system, I get a BugCheck 10D, {d,
> > 83b93110, 83c68e28, 8400cf08}.
>
> > I've tried to release the "Power Policy Ownership" in the USB driver
> > as I read in some posts that a miniport driver can't be a PPO. But
> > still I get the same bugcheck.
>
> > Please somebody point out what can be wrong.
>
> > Further I've some doubts:-
>
> > 1. Since my USB part uses power manged queues, can that lead to a
> > problem ( driver not being   the PPO and upper part being WDM )
>
> > 2. During initialization and shutdown, I can see my power event
> > callbacks D0Entry and D0Exit getting called, but not during standby.
>
> > 3. Is this driver architecthure valid for WHQL certification.
>
> > Request to provide some pointers to start the debugging.
>
> > Thanks

Thanks for the reply. I know its better to have the approach that you
mentioned. Since I can't modify the driver architecture at this point,
I was thinking to go with the same approach. Eventually I'll be moving
to the NDIS-KMDF arch, but since I came across this driver arch, I had
these questions in mind. Will be grateful if somebody can answer them.

Thanks
From: Lost Soul on
On Apr 16, 10:17 pm, "Doron Holan [MSFT]"
<doron.ho...(a)online.microsoft.com> wrote:
> why do you have 2 drivers? why not use KMDF in miniport mode and just have
> an NDIS-KMDF miniport?  how did you relinquish power policy ownership in the
> lower filter?
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
> "Lost Soul" <shaktisi...(a)gmail.com> wrote in message
>
> news:ca5a794b-e13e-4dab-ae2d-2619f91f994b(a)z3g2000yqz.googlegroups.com...
>
> > Hi,
>
> > I'm having a NDIS ( WDM ) driver which has USB ( KMDF ) as the lower
> > edge.
>
> > For NDIS I've taken the NDISWDM sample from the DDK and for the USB
> > part I've taken the USBSAMP.
>
> > The device is working fine and I'm able to send/receive data.
> > But when I try to suspend the system, I get a BugCheck 10D, {d,
> > 83b93110, 83c68e28, 8400cf08}.
>
> > I've tried to release the "Power Policy Ownership" in the USB driver
> > as I read in some posts that a miniport driver can't be a PPO. But
> > still I get the same bugcheck.
>
> > Please somebody point out what can be wrong.
>
> > Further I've some doubts:-
>
> > 1. Since my USB part uses power manged queues, can that lead to a
> > problem ( driver not being   the PPO and upper part being WDM )
>
> > 2. During initialization and shutdown, I can see my power event
> > callbacks D0Entry and D0Exit getting called, but not during standby.
>
> > 3. Is this driver architecthure valid for WHQL certification.
>
> > Request to provide some pointers to start the debugging.
>
> > Thanks

Oh! forgot to mention that I'm using
'WdfDeviceInitSetPowerPolicyOwnership' to release the PPO.
From: Doron Holan [MSFT] on
that should work. I would run !wdfkd.wdflogdump <your driver name> for each
driver that you have in the stack. I would also run !poreqlist and !poaction
when power down stops working to see what power irps are stuck.

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"Lost Soul" <shaktisinha(a)gmail.com> wrote in message
news:b21c1df8-d2dd-40d8-b652-af0d1b083525(a)g11g2000yqe.googlegroups.com...
> On Apr 16, 10:17 pm, "Doron Holan [MSFT]"
> <doron.ho...(a)online.microsoft.com> wrote:
>> why do you have 2 drivers? why not use KMDF in miniport mode and just
>> have
>> an NDIS-KMDF miniport? how did you relinquish power policy ownership in
>> the
>> lower filter?
>>
>> --
>>
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>> "Lost Soul" <shaktisi...(a)gmail.com> wrote in message
>>
>> news:ca5a794b-e13e-4dab-ae2d-2619f91f994b(a)z3g2000yqz.googlegroups.com...
>>
>> > Hi,
>>
>> > I'm having a NDIS ( WDM ) driver which has USB ( KMDF ) as the lower
>> > edge.
>>
>> > For NDIS I've taken the NDISWDM sample from the DDK and for the USB
>> > part I've taken the USBSAMP.
>>
>> > The device is working fine and I'm able to send/receive data.
>> > But when I try to suspend the system, I get a BugCheck 10D, {d,
>> > 83b93110, 83c68e28, 8400cf08}.
>>
>> > I've tried to release the "Power Policy Ownership" in the USB driver
>> > as I read in some posts that a miniport driver can't be a PPO. But
>> > still I get the same bugcheck.
>>
>> > Please somebody point out what can be wrong.
>>
>> > Further I've some doubts:-
>>
>> > 1. Since my USB part uses power manged queues, can that lead to a
>> > problem ( driver not being the PPO and upper part being WDM )
>>
>> > 2. During initialization and shutdown, I can see my power event
>> > callbacks D0Entry and D0Exit getting called, but not during standby.
>>
>> > 3. Is this driver architecthure valid for WHQL certification.
>>
>> > Request to provide some pointers to start the debugging.
>>
>> > Thanks
>
> Oh! forgot to mention that I'm using
> 'WdfDeviceInitSetPowerPolicyOwnership' to release the PPO.