Threading e nível de sincronização zero
No nível zero de threading e sincronização, o WDDM permite que chamadas DxgkDdi*Xxx de Nível Zero para o driver de miniporto de exibição sejam feitas de maneira reentrante. Ou seja, mais de um thread pode inserir simultaneamente o driver chamando uma DDI de Nível Zero.
O driver deve esperar que qualquer thread no sistema entre e deve proteger os dados desse thread adequadamente.
Embora dois ou mais threads possam ser executados no driver ao mesmo tempo, nenhum dos dois threads pode pertencer a um único processo.
O Nível Zero é o nível de threading e sincronização padrão e inclui funções como:
- DxgkDdiCheckMultiPlaneOverlaySupport3 (ou DxgkDdiCheckMultiPlaneOverlaySupport2/DxgkDdiCheckMultiPlaneOverlaySupport)
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo. Essa função deve coletar informações de depuração para várias falhas e pode ser chamada a qualquer momento e em ALTO IRQL (ou seja, o IRQL em que DxgkDdiCollectDbgInfo é executado em geralmente é indefinido). Em todos os casos, DxgkDdiCollectDbgInfo deve verificar a disponibilidade das informações de depuração necessárias e da sincronização adequada. No entanto, se o membro Reason da estrutura DXGKARG_COLLECTDBGINFO para a qual o parâmetro pCollectDbgInfo aponta estiver definido como VIDEO_TDR_TIMEOUT_DETECTED ou VIDEO_ENGINE_TIMEOUT_DETECTED, o driver deverá garantir que DxgkDdiCollectDbgInfo seja paginável, seja executado em IRQL = PASSIVE_LEVEL e dê suporte ao nível zero de sincronização.
- 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