Threading and Synchronization Level Zero
At Level Zero threading and synchronization, WDDM permits Level Zero DxgkDdi*Xxx 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 a Level Zero DDI.
The driver should expect any thread in the system to come in and should protect that thread's data accordingly.
Although two or more threads can be running in the driver at the same time, no two threads can belong to a single process.
Level Zero is the default threading and synchronization level, and includes functions such as:
- DxgkDdiCheckMultiPlaneOverlaySupport3 (or DxgkDdiCheckMultiPlaneOverlaySupport2/DxgkDdiCheckMultiPlaneOverlaySupport)
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo. This function 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 all cases, 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 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.
- DxgkDdiControlEtwLogging
- DxgkDdiCreateAllocation
- DxgkDdiCreateContext
- DxgkDdiCreateDevice
- DxgkDdiDescribeAllocation
- DxgkDdiDestroyAllocation
- DxgkDdiDestroyContext
- DxgkDdiDestroyDevice
- DxgkDdiDpcRoutine
- DxgkDdiEnumVidPnCofuncModality
- DxgkDdiGetScanLine
- DxgkDdiGetStandardAllocationDriverData
- DxgkDdiInterruptRoutine
- DxgkDdiIsSupportedVidPn
- DxgkDdiMiracastCreateContext
- DxgkDdiMiracastDestroyContext
- DxgkDdiMiracastIoControl
- DxgkDdiMiracastQueryCaps
- DxgkDdiOpenAllocation
- DxgkDdiPresent
- DxgkDdiQueryAdapterInfo
- DxgkDdiQueryCurrentFence
- DxgkDdiRecommendFunctionalVidPn
- DxgkDdiRecommendVidPnTopology
- DxgkDdiRender
- DxgkDdiRenderKm
- DxgkDdiResetDevice