Hi,
We observed a deadlock today because of our filter driver and windbg showed
the following backtrace. It was diagnosed to the fact
that we were calling ZwCreateFile while holding a fast-mutex. This disabled
APC delivery as a result of which the requesting thread was never woken up
again. We fixed this and things seems to be fine.
However, what is puzzling me is the 1st argument to KeWaitForSingleObject
which is 0? Does anyone know what is happening?
Thanks
ChildEBP RetAddr Args to Child
f4784124 8083ca79 85405e18 85405da8 80831c80 nt!KiSwapContext+0x2f (FPO:
[Uses EBP] [0,0,4])
f4784130 80831c80 00000103 f47841cc 00000000 nt!KiSwapThread+0x6b (FPO:
[0,0,0])
f4784158 f58dd7df 00000000 00000000 00000000 nt!KeWaitForSingleObject+0x22e
(FPO: [Non-Fpo])
f4784198 f58ecb47 86489368 00024800 866a36c8 Cdfs!CdPerformDevIoCtrl+0xb3
(FPO: [Non-Fpo])
f47841e0 f58dc7b3 86489368 85306bc8 aed50eb8 Cdfs!CdVerifyVcb+0xad (FPO:
[Non-Fpo])
f478456c f58d3d3a 86489368 aed50eb8 85306af8 Cdfs!CdCommonCreate+0x1e5 (FPO:
[Non-Fpo])
f47845c4 8081fa73 85306af8 aed50eb8 85306af8 Cdfs!CdFsdDispatch+0x126 (FPO:
[Non-Fpo])
f47845dc 80ae0128 86094020 aed50eb8 00000000 nt!IopfCallDriver+0x51 (FPO:
[0,0,0])
f4784600 bb46957c 86094020 aed50eb8 00000000 nt!IovCallDriver+0xa0 (FPO: