我在Windows上阅读了一篇关于同步的文章。
Locks, Deadlocks, and Synchronization
据说应该在调用KeEnterCriticalRegion()
之前调用KeWaitXxx()
来禁用正常的内核模式APC传递,以避免死锁。
我明白了。但是AFAIK,用户应用程序没有像KeEnterCriticalRegion()
这样的API,因此WaitForSingleObject()
似乎对死锁不安全。
否则,在KeEnterCriticalRegion()
来电内部调用WaitForSingleObject()
?