Holy cow, I wrote a book!
Some time ago I mentioned that
during process termination, the gates are now electrified:
If you attempt to enter a critical section that is owned by a thread
that was terminated by an earlier phase of process termination,
the entire process is forcibly terminated.
Windows Vista introduced a new lightweight synchronization pseudo-object
known as the
slim reader/writer lock.
And if you tried to enter a slim reader/writer lock during process termination
and found yourself waiting for the current owner to release it,
you ended up waiting forever
since the current owner was terminated by an earlier phase of process
"As for the home-grown stuff, well, you're on your own"
Even though the slim reader/writer lock functions are exported from
they don't have any special kernel powers with respect to process
From the standpoint of process termination, they may as well be some
home-grown synchronization primitive.
In Windows 7,
the kernel folks decided to bring slim reader/writer locks into the fold
of objects which are electrified during process termination.
Starting in Windows 7,
if you attempt to acquire a slim reader/writer lock during process
termination, and the lock cannot be immediately acquired,
then the process is forcibly terminated.