Is this scenario a problem?

Gentlefolk

I was wondering whether you could advise me if the following two thread
scenario is a problem for example in terms of bluescreen potential.

Thread A has entered a filter driver at passive level in a page write to a
system page file. Thread B has entered the same filter driver at passive
level for something else like say a regular cached write to some regular
file. Thread B acquires a fast mutex. Thread A attempts to acquire the same
fast mutex and is forced to wait becuase Thread B has acquired the fast
mutex. Thread B calls RtlUpcaseUnicodeChar() several times and then releases
the fast mutex.

Thanks in advance
Lyndon

Generally you can’t wait while performing IO to the system paging file,
restrictions in this case are almost the same as if you are on DISPATCH
level.
RtlUpcaseUnicodeChar may cause page fault which will wait for thread A to
complete IO which in turn wait for mutex held by B; so you get a deadlock.

Alexei.

“Lyndon J Clarke” wrote in message
news:xxxxx@ntfsd…
> Gentlefolk
>
> I was wondering whether you could advise me if the following two thread
> scenario is a problem for example in terms of bluescreen potential.
>
> Thread A has entered a filter driver at passive level in a page write to a
> system page file. Thread B has entered the same filter driver at passive
> level for something else like say a regular cached write to some regular
> file. Thread B acquires a fast mutex. Thread A attempts to acquire the
same
> fast mutex and is forced to wait becuase Thread B has acquired the fast
> mutex. Thread B calls RtlUpcaseUnicodeChar() several times and then
releases
> the fast mutex.
>
> Thanks in advance
> Lyndon
>
>
>