[nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8

Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 !IRP 0xfffffa80070ea900

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn’t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver…

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™

3 WDFREQUESTs mapped to the same PIRP would either mean

a) You are mismanaging the state of the irp as you pass it to smclib

b) Smclib is taking the irp you are handing off to it and then sending it back to your driver via IoCallDirver as a newly formatted request

Your power managed queue needs an EvtIoStop routine to acknowledge in flight io, otherwise it will wait for you to complete each request.

What is the output of !IRP 0xfffffa80070ea900?

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Nik Twerdochlib
Sent: Friday, August 3, 2012 8:25 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8

Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn’t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver…

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™


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

0: kd> !IRP 0xfffffa80070ea900
IRP signature does not match, probably not an IRP

I am also concerned about this:

Dumping WDFQUEUE 0x0000057ff8d343a8

Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

This is not pointing to the EvtIoDeviceControl callback in my driver? But I can’t even see what the IRP is.

Regarding a) and b);

a) I do set the irp to a pending status before passing it down to smclib. I also copy the irp to the next stack location so smclib will not complete my incoming request.

b) Based on a), presuming I am correct and acknowledging I am not an expert…, I don’t think this is occurring.

I am looking into the EvtIoStop idea now.

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Friday, August 03, 2012 11:34 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

3 WDFREQUESTs mapped to the same PIRP would either mean

a) You are mismanaging the state of the irp as you pass it to smclib

b) Smclib is taking the irp you are handing off to it and then sending it back to your driver via IoCallDirver as a newly formatted request

Your power managed queue needs an EvtIoStop routine to acknowledge in flight io, otherwise it will wait for you to complete each request.

What is the output of !IRP 0xfffffa80070ea900?

From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com]mailto: On Behalf Of Nik Twerdochlib
Sent: Friday, August 3, 2012 8:25 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8
=========================
Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn’t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver…

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™


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


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</mailto:></mailto:xxxxx>

Are you setting a completion routine? Hopefully before you set the next stack location. Wdf01000!VfEvtIoDeviceControl is the wdf verifier overriding your callback to do further verification, dont worry your callback is there :slight_smile:

d

debt from my phone


From: Nik Twerdochlib
Sent: 8/3/2012 8:42 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

0: kd> !IRP 0xfffffa80070ea900
IRP signature does not match, probably not an IRP

I am also concerned about this:

Dumping WDFQUEUE 0x0000057ff8d343a8

Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

This is not pointing to the EvtIoDeviceControl callback in my driver? But I can?t even see what the IRP is.

Regarding a) and b);

a) I do set the irp to a pending status before passing it down to smclib. I also copy the irp to the next stack location so smclib will not complete my incoming request.

b) Based on a), presuming I am correct and acknowledging I am not an expert?, I don?t think this is occurring.

I am looking into the EvtIoStop idea now.

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support?

One of the Fastest-Growing Technology Companies in America | Technology Fast 500?

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Friday, August 03, 2012 11:34 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

3 WDFREQUESTs mapped to the same PIRP would either mean

a) You are mismanaging the state of the irp as you pass it to smclib

b) Smclib is taking the irp you are handing off to it and then sending it back to your driver via IoCallDirver as a newly formatted request

Your power managed queue needs an EvtIoStop routine to acknowledge in flight io, otherwise it will wait for you to complete each request.

What is the output of !IRP 0xfffffa80070ea900?

From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com]mailto: On Behalf Of Nik Twerdochlib
Sent: Friday, August 3, 2012 8:25 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8
=========================
Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn?t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver?.

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support?

One of the Fastest-Growing Technology Companies in America | Technology Fast 500?


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


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


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</mailto:></mailto:xxxxx>

What do you do in SmCompletion ?

d

debt from my phone


From: Doron Holan
Sent: 8/3/2012 8:53 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: RE: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

Are you setting a completion routine? Hopefully before you set the next stack location. Wdf01000!VfEvtIoDeviceControl is the wdf verifier overriding your callback to do further verification, dont worry your callback is there :slight_smile:

d

debt from my phone


From: Nik Twerdochlib
Sent: 8/3/2012 8:42 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

0: kd> !IRP 0xfffffa80070ea900
IRP signature does not match, probably not an IRP

I am also concerned about this:

Dumping WDFQUEUE 0x0000057ff8d343a8

Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

This is not pointing to the EvtIoDeviceControl callback in my driver? But I can?t even see what the IRP is.

Regarding a) and b);

a) I do set the irp to a pending status before passing it down to smclib. I also copy the irp to the next stack location so smclib will not complete my incoming request.

b) Based on a), presuming I am correct and acknowledging I am not an expert?, I don?t think this is occurring.

I am looking into the EvtIoStop idea now.

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support?

One of the Fastest-Growing Technology Companies in America | Technology Fast 500?

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Friday, August 03, 2012 11:34 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

3 WDFREQUESTs mapped to the same PIRP would either mean

a) You are mismanaging the state of the irp as you pass it to smclib

b) Smclib is taking the irp you are handing off to it and then sending it back to your driver via IoCallDirver as a newly formatted request

Your power managed queue needs an EvtIoStop routine to acknowledge in flight io, otherwise it will wait for you to complete each request.

What is the output of !IRP 0xfffffa80070ea900?

From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com]mailto: On Behalf Of Nik Twerdochlib
Sent: Friday, August 3, 2012 8:25 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8
=========================
Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn?t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver?.

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support?

One of the Fastest-Growing Technology Companies in America | Technology Fast 500?


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


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


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</mailto:></mailto:xxxxx>

__drv_functionClass(IO_COMPLETION_ROUTINE)
NTSTATUS SmCompletion(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp, IN PVOID pContext)
{
if (!NT_SUCCESS(pIrp->IoStatus.Status)) {
PIO_STACK_LOCATION pStack;
pStack = IoGetCurrentIrpStackLocation(pIrp);

if (pStack->Parameters.DeviceIoControl.IoControlCode != IOCTL_SMARTCARD_SET_ATTRIBUTE) {
SmartcardLogError(WdfDriverWdmGetDriverObject(WdfGetDriver()), pIrp->IoStatus.Status, NULL, 0);
}
}

WdfRequestCompleteWithInformation((WDFREQUEST)pContext, pIrp->IoStatus.Status, pIrp->IoStatus.Information);

return STATUS_MORE_PROCESSING_REQUIRED;
}

I think this is pretty standard, just that I added a case for logging.

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Friday, August 03, 2012 11:58 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

What do you do in SmCompletion ?

d

debt from my phone


From: Doron Holan
Sent: 8/3/2012 8:53 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: RE: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final
Are you setting a completion routine? Hopefully before you set the next stack location. Wdf01000!VfEvtIoDeviceControl is the wdf verifier overriding your callback to do further verification, dont worry your callback is there :slight_smile:

d

debt from my phone


From: Nik Twerdochlib
Sent: 8/3/2012 8:42 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

0: kd> !IRP 0xfffffa80070ea900
IRP signature does not match, probably not an IRP

I am also concerned about this:

Dumping WDFQUEUE 0x0000057ff8d343a8

Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

This is not pointing to the EvtIoDeviceControl callback in my driver? But I can’t even see what the IRP is.

Regarding a) and b);

a) I do set the irp to a pending status before passing it down to smclib. I also copy the irp to the next stack location so smclib will not complete my incoming request.

b) Based on a), presuming I am correct and acknowledging I am not an expert…, I don’t think this is occurring.

I am looking into the EvtIoStop idea now.

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™
From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com]mailto: On Behalf Of Doron Holan
Sent: Friday, August 03, 2012 11:34 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

3 WDFREQUESTs mapped to the same PIRP would either mean

a) You are mismanaging the state of the irp as you pass it to smclib

b) Smclib is taking the irp you are handing off to it and then sending it back to your driver via IoCallDirver as a newly formatted request

Your power managed queue needs an EvtIoStop routine to acknowledge in flight io, otherwise it will wait for you to complete each request.

What is the output of !IRP 0xfffffa80070ea900?

From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com]mailto: On Behalf Of Nik Twerdochlib
Sent: Friday, August 3, 2012 8:25 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8
=========================
Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn’t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver…

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™


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


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


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


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</mailto:></mailto:xxxxx></mailto:></mailto:xxxxx>

Doron,

It took me a while to fully understand this reply, but I think I finally got it. I think what was throwing me off is that smclib is not really a library that you would link to in the way you might think. Smclib is a wdm driver. So when I pass down the Irp from my driver, I am passing ownership to smclib.sys. Once I grasped this, I got the EvtIoStop callback functioning correctly.

I love writing windows drivers (KMDF), just have not been doing long enough… I have to keep in mind that it is not for the faint at heart…

One minor issue I am still hung up on is why three different wdfrequest objects would point to the same irp? My thinking tells me that might not be right; as is in there is a little surprise waiting for me in this driver! :slight_smile: Any input on that question would be very welcome.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Friday, August 03, 2012 11:34 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

3 WDFREQUESTs mapped to the same PIRP would either mean

a) You are mismanaging the state of the irp as you pass it to smclib

b) Smclib is taking the irp you are handing off to it and then sending it back to your driver via IoCallDirver as a newly formatted request

Your power managed queue needs an EvtIoStop routine to acknowledge in flight io, otherwise it will wait for you to complete each request.

What is the output of !IRP 0xfffffa80070ea900?

From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com]mailto: On Behalf Of Nik Twerdochlib
Sent: Friday, August 3, 2012 8:25 PM
To: Windows System Software Devs Interest List
Cc: Nik Twerdochlib
Subject: [ntdev] [nik] exception during last WLK test for WDF Logo Test - Final

During the final test in this group I am getting the following in Windbg:

Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (2 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (3 ticks)
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80038BF7B0 (2) status 0
Power Irp Watchdog: warning for PDO=FFFFFA8006648170 Current=FFFFFA8006F27750 IRP=FFFFFA80079E46A0 (2) status 0
Power system watchdog warning (4 ticks)
Thread 0xFFFFFA80036B4B50 is waiting for all inflight requests to be acknowledged on WDFQUEUE 0x0000057FF8D343A8
Break instruction exception - code 80000003 (first chance)

Dumping the ioqueue in question yields:

Dumping WDFQUEUE 0x0000057ff8d343a8
=========================
Parallel, Default, Power-managed, PowerStoppingDriverNotified, Can accept, Can dispatch, ExecutionLevelDispatch, SynchronizationScopeNone
Number of driver owned requests: 3
Power transition in progress
Number of waiting requests: 0

Number of requests notified about power change: 3
!WDFREQUEST 0x0000057ff92b6988 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff91db918 !IRP 0xfffffa80070ea900
!WDFREQUEST 0x0000057ff94986d8 C

EvtIoDeviceControl: (0xfffff88000fe7d98) Wdf01000!VfEvtIoDeviceControl

I am concerned that all three wdfrequest objects are representing the same irp? I am using smclib in this driver, so there is some irp stack magic going on so the smclib doesn’t complete my incoming wdfrequest. I can not dump the IRP address. It gives an error that the IRP signature does not match.

I used !devobj to get the driver object address, but trying to list the device queues with !wdfdevicequeues gives me:
c0000005 Exception in wdfkd.wdfdevicequeues debugger extension.
PC: 000007fee4429a5a VA: 0000000000000000 R/W: 0 Parameter: 00000000`00000000

If I force the target to shut down and then restart it, the WLK test will still show has passed. However I think there is still something wrong in my driver…

If anyone has any helpful pointers on how to track this down I would appreciate it.

Thanks,

Nik Twerdochlib
Software Developer

+1.601.607.8309 O
+1.866.522.8678 F

BOMGAR | The Box That’s Revolutionizing Remote Support™

One of the Fastest-Growing Technology Companies in America | Technology Fast 500™


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


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</mailto:></mailto:xxxxx>