Subprocesos y nivel de sincronización cero
En el nivel Cero subprocesos y sincronización, WDDM permite que las llamadas Level Zero DxgkDdi*Xxx al controlador de miniporte de pantalla se realicen de forma reentrant. Es decir, más de un subproceso puede entrar simultáneamente en el controlador llamando a un DDI de nivel cero.
El controlador debe esperar que cualquier subproceso del sistema entre y debe proteger los datos del subproceso en consecuencia.
Aunque dos o más subprocesos se pueden ejecutar en el controlador al mismo tiempo, ningún dos subprocesos puede pertenecer a un único proceso.
El nivel Cero es el nivel de subproceso y sincronización predeterminado, e incluye funciones como:
- DxgkDdiCheckMultiPlaneOverlaySupport3 (o DxgkDdiCheckMultiPlaneOverlaySupport2/DxgkDdiCheckMultiPlaneOverlaySupport)
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo. Esta función debe recopilar información de depuración para varios errores y se puede llamar en cualquier momento y en irQL alto (es decir, el IRQL en el que se ejecuta DxgkDdiCollectDbgInfo es generalmente indefinido). En todos los casos, DxgkDdiCollectDbgInfo debe comprobar la disponibilidad de la información de depuración necesaria y la sincronización adecuada. Sin embargo, si el miembro Reason de la estructura DXGKARG_COLLECTDBGINFO a la que apunta el parámetro pCollectDbgInfo se establece en VIDEO_TDR_TIMEOUT_DETECTED o VIDEO_ENGINE_TIMEOUT_DETECTED, el controlador debe asegurarse de que DxgkDdiCollectDbgInfo es paginable, se ejecuta en IRQL = PASSIVE_LEVEL y admite el nivel cero de sincronización.
- 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