Hi,
I am trying to handle internal and external WDFREQUEST using the same code (I use KMDF 1.11 to be able to forward internal request between queues). I came across an issue when probing if WDFREQUEST was cancelled.
Internal ones BSODs with 0x7E, Is my assumption correct, that since internal WDFREQUESTs are not correlated with the IRP the framework cancellation logic will not work for them?
If by internal you mean driver created requests, a driver created request cannot be canceled by anyone but your own driver so an IsCanceled test doesn’t make much sense
d
debt from my phone
From: xxxxx@intel.com
Sent: 9/5/2012 1:28 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Internall WDFREQUEST cancellation
Hi,
I am trying to handle internal and external WDFREQUEST using the same code (I use KMDF 1.11 to be able to forward internal request between queues). I came across an issue when probing if WDFREQUEST was cancelled.
Internal ones BSODs with 0x7E, Is my assumption correct, that since internal WDFREQUESTs are not correlated with the IRP the framework cancellation logic will not work for them?
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
Hi Doron,
Thank you for your answer. I am aiming to use a beauty of WDFIOQUEUEs and WDFREQUESTs.
My design is a single binary, but consists of a static library, which is an abstraction layer to the underlying driver, which actually services the HW. The static library prepares the WDFREQUEST and sends it to the driver, which transforms the WDFREQUEST to a set of HW calls.
In this scenario I do not have IRP, but a private interface which forwards the WDFREQUEST to a lower layer of a driver.
When a lower layer of a driver executes a set of HW calls it owns a WDFREQUEST, but the static library can cancel a WDFREQUEST in some cases.
Would sending a WDFREQUEST to my driver make this design better? I know it would give me a possibility to forward a WDFREQUEST between queues?
You can always attempt to cancel a sent request (it is up to you to make sure the wdfrequest handle is still valid and not yet completed, but you dont have to care about sent state), internal or external, with wdfrequestcancelsentrequest. This is different than the request being canceled from above
d
debt from my phone
From: xxxxx@intel.com
Sent: 9/5/2012 11:13 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Internall WDFREQUEST cancellation
Hi Doron,
Thank you for your answer. I am aiming to use a beauty of WDFIOQUEUEs and WDFREQUESTs.
My design is a single binary, but consists of a static library, which is an abstraction layer to the underlying driver, which actually services the HW. The static library prepares the WDFREQUEST and sends it to the driver, which transforms the WDFREQUEST to a set of HW calls.
In this scenario I do not have IRP, but a private interface which forwards the WDFREQUEST to a lower layer of a driver.
When a lower layer of a driver executes a set of HW calls it owns a WDFREQUEST, but the static library can cancel a WDFREQUEST in some cases.
Would sending a WDFREQUEST to my driver make this design better? I know it would give me a possibility to forward a WDFREQUEST between queues?
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