Потоки и уровень синхронизации (ноль)
На уровне 0 потоков и синхронизации WDDM позволяет выполнять вызовы Уровня Zero DxgkDdi*Xxx в драйвере мини-порта дисплея повторно. То есть несколько потоков могут одновременно войти в драйвер, вызвав DDI нулевого уровня.
Драйвер должен ожидать, что любой поток в системе будет поступать, и должен соответствующим образом защитить данные этого потока.
Хотя в драйвере одновременно могут выполняться два или более потоков, ни один поток не может принадлежать одному процессу.
Нулевой уровень — это уровень потоков и синхронизации по умолчанию и включает такие функции, как:
- DxgkDdiCheckMultiPlaneOverlaySupport3 (или DxgkDdiCheckMultiPlaneOverlaySupport2/DxgkDdiCheckMultiPlaneOverlaySupport)
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo. Эта функция должна собирать отладочную информацию о различных сбоях и может вызываться в любое время и на высоком уровне IRQL (т. е. значение IRQL, на котором выполняется DxgkDdiCollectDbgInfo , обычно не определено). Во всех случаях DxgkDdiCollectDbgInfo должен проверять доступность необходимых отладочных сведений и правильную синхронизацию. Однако если элемент ReasonDXGKARG_COLLECTDBGINFO структуры, на которую указывает параметр pCollectDbgInfo , имеет значение VIDEO_TDR_TIMEOUT_DETECTED или VIDEO_ENGINE_TIMEOUT_DETECTED, драйвер должен убедиться, что DxgkDdiCollectDbgInfo доступен для страниц, выполняется в IRQL = PASSIVE_LEVEL и поддерживает синхронизацию нулевого уровня.
- DxgkDdiControlEtwLogging
- DxgkDdiCreateAllocation
- DxgkDdiCreateContext
- DxgkDdiCreateDevice
- DxgkDdiDescribeAllocation
- DxgkDdiDelocationAllocation
- DxgkDdiDetextContext
- DxgkDdiDeкистройDevice
- DxgkDdiDpcRoutine
- DxgkDdiEnumVidPnCofuncModality
- DxgkDdiGetScanLine
- DxgkDdiGetStandardAllocationDriverData
- DxgkDdiInterruptRoutine
- DxgkDdiIsSupportedVidPn
- DxgkDdiMiracastCreateContext
- DxgkDdiMiracastDetextContext
- DxgkDdiMiracastIoControl
- DxgkDdiMiracastQueryCaps
- DxgkDdiOpenAllocation
- DxgkDdiPresent
- DxgkDdiQueryAdapterInfo
- DxgkDdiQueryCurrentFence
- DxgkDdiRecommendFunctionalVidPn
- DxgkDdiRecommendVidPnTopology
- DxgkDdiRender
- DxgkDdiRenderKm
- DxgkDdiResetDevice