The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
I am looking at the documentation for
WdfObjectDelete, which says:
The WdfObjectDelete method must be called at IRQL <= DISPATCH_LEVEL. If your driver is deleting a control device object, WdfObjectDelete must be called at IRQL = PASSIVE_LEVEL. Similarly, if your driver is deleting a common buffer, WdfObjectDelete must be called at IRQL = PASSIVE_LEVEL.
I am wondering what a common buffer is?
Is there any thing I need to keep in mind when calling
WdfObjectDelete with memory received by
I am experiencing some issues (stack trace below) when
WdfObjectDelete is called in my
EvtDestroyCallback. The object that I pass to
WdfObjectDelete is memory received in
00 fffffb89`bed69748 fffff805`2bb162f2 nt!DbgBreakPointWithStatus 01 fffffb89`bed69750 fffff805`2bb158d6 nt!KiBugCheckDebugBreak+0x12 02 fffffb89`bed697b0 fffff805`2b9fbda7 nt!KeBugCheck2+0x946 03 fffffb89`bed69ec0 fffff805`2ba17dab nt!KeBugCheckEx+0x107 04 fffffb89`bed69f00 fffff805`2b9cfbc2 nt!PspSystemThreadStartup$filt$0+0x44 05 fffffb89`bed69f40 fffff805`2ba06392 nt!_C_specific_handler+0xa2 06 fffffb89`bed69fb0 fffff805`2b8e58c7 nt!RtlpExecuteHandlerForException+0x12 07 fffffb89`bed69fe0 fffff805`2b8e7896 nt!RtlDispatchException+0x297 08 fffffb89`bed6a700 fffff805`2ba0fe6c nt!KiDispatchException+0x186 09 fffffb89`bed6adc0 fffff805`2ba0b45a nt!KiExceptionDispatch+0x12c 0a fffffb89`bed6afa0 fffff805`2f643f74 nt!KiGeneralProtectionFault+0x31a 0b fffffb89`bed6b130 fffff805`2f643eee Wdf01000!FxObjectHandleGetPtrQI+0x40 [minkernel\wdf\framework\shared\object\handleapi.cpp @ 376] 0c (Inline Function) --------`-------- Wdf01000!FxObjectHandleGetPtr+0x39 [minkernel\wdf\framework\shared\inc\private\common\fxhandle.h @ 345] 0d (Inline Function) --------`-------- Wdf01000!FxObjectHandleGetPtrAndGlobals+0x39 [minkernel\wdf\framework\shared\inc\private\common\fxhandle.h @ 449] 0e fffffb89`bed6b1a0 fffff805`3eddeffe Wdf01000!imp_WdfObjectDelete+0x4e [minkernel\wdf\framework\shared\object\fxobjectapi.cpp @ 299]
|Upcoming OSR Seminars|
|OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!|
|Kernel Debugging||13-17 May 2024||Live, Online|
|Developing Minifilters||1-5 Apr 2024||Live, Online|
|Internals & Software Drivers||11-15 Mar 2024||Live, Online|
|Writing WDF Drivers||26 Feb - 1 Mar 2024||Live, Online|