Threading and Synchronization Zero Level
The Windows Display Driver Model (WDDM) permits the following calls into the display miniport driver to be made in a reentrant fashion. That is, more than one thread can simultaneously enter the driver by calling the following functions:
Note Although two or more threads can be running in the driver at the same time, no two threads can belong to a single process.
DxgkDdiCollectDbgInfoNoteDxgkDdiCollectDbgInfo should collect debug information for various failures and can be called at any time and at high IRQL (that is, the IRQL that DxgkDdiCollectDbgInfo runs at is generally undefined). In any case, DxgkDdiCollectDbgInfo must verify availability of the required debug information and proper synchronization. However, if the Reason member of the DXGKARG_COLLECTDBGINFO structure that the pCollectDbgInfo parameter of DxgkDdiCollectDbgInfo points to is set to VIDEO_TDR_TIMEOUT_DETECTED or VIDEO_ENGINE_TIMEOUT_DETECTED, the driver must ensure that DxgkDdiCollectDbgInfo is pageable, runs at IRQL = PASSIVE_LEVEL, and supports synchronization zero level.