ModLoad 59440000 00000454 PRNFLDRI observed that normally the same thread is responsible to load and to unload the module. However, that's not always the case. If you can force a context switch on the code path of dereference, and to get the unloading thread to trigger ModFree, you could end up to dereference freed memory.
ModFree 59440000 00000454 00000454 PRNFLDR
ModLoad 59440000 00000454 prnfldr
ModLoad 74b90000 00000454 WINSPOOL
ModLoad 5aa30000 00000454 prncache
ModLoad 74950000 00000454 RpcRtRemote
ModLoad 673a0000 00000454 actxprxy
ModLoad 6b180000 00000454 ieproxy
ModLoad 5a9f0000 00000454 thumbcache
ModLoad 5fcc0000 00000454 ieframe
ModLoad 75800000 00000454 api-ms-win-downlevel-ole32-l1-1-0
ModLoad 74490000 00000454 api-ms-win-downlevel-shlwapi-l2-1-0
ModLoad 74470000 00000454 api-ms-win-downlevel-advapi32-l2-1-0
ModLoad 6b250000 00000454 api-ms-win-downlevel-shell32-l1-1-0
ModFree 5aa30000 0000055c 00000454 prncache
-->prncache (5aa30000) is allocated by thread id 454 but freed by 55c
ModLoad 55250000 00000454 NPSWF32_11_7_700_169
ModLoad 771d0000 00000454 urlmon
ModLoad 6c310000 00000454 DSOUND
ModLoad 744a0000 00000454 POWRPROF
ModLoad 735a0000 00000454 mlang
April 15, 2013
Tracing Thread ID of ModLoad and ModFree Events
This log was created by an experimental Windbg extension that is to trace the thread ID of ModLoad/ModFree events. When a module is being unloaded the extension queries the ID of the current thread and compares to the thread ID that loaded the module. If two different threads used to load and to unload the module the extension issues a notification as seen in yellow below.