If I understand well this discussion : http://www.osronline.com/showthread.cfm?link=258499,
I can't do any I/O in this IRP if the current IRQL is >= APC_LEVEL, because FltQueueDeferredIoWorkItem insert the work in a system thread,
and FltDoCompletionProcessingWhenSafe immediately call the SafePostCallBack if the current IRQL is <= APC_LEVEL, or try to post it in a system worker thread if it's > APC_LEVEL.
Is there a way to safely process IRP_MJ_CLEANUP at PASSIVE_LEVEL without switching in a system thread ?
Do I need to process my I/O in another thread and wait inside the Pre/Post callback for completion before returning CALLBACK_STATUS other than PENDING or MORE_PROCESSING_REQUIRED ?
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Writing WDF Drivers||21 Oct 2019||OSR Seminar Space & ONLINE|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|
|Kernel Debugging||30 Mar 2020||OSR Seminar Space|
|Developing Minifilters||27 Apr 2020||OSR Seminar Space & ONLINE|