執行緒和同步處理層級零
在層級零執行緒和同步處理中,WDDM 允許對顯示器迷你埠驅動程式進行層級零 DxgkDdi*Xxx 呼叫,以重新進入的方式進行。 也就是說,多個執行緒可以呼叫 Level Zero DDI 來同時進入驅動程式。
驅動程式應該預期系統中的任何執行緒都會出現,而且應該據以保護該執行緒的資料。
雖然兩個或多個執行緒可以同時在驅動程式中執行,但兩個執行緒都不能屬於單一進程。
層級零是預設執行緒和同步處理層級,並包含下列函式:
- DxgkDdiCheckMultiPlaneOverlaySupport3 (或DxgkDdiCheckMultiPlaneOverlaySupport2/DxgkDdiCheckMultiPlaneOverlaySupport)
- DxgkDdiCloseAllocation
- DxgkDdiCollectDbgInfo。 此函式應該收集各種失敗的偵錯資訊,而且可以隨時呼叫,而且在高 IRQL (,也就是 DxgkDdiCollectDbgInfo 執行的 IRQL 通常是未定義) 。 在所有情況下, DxgkDdiCollectDbgInfo 都必須驗證必要偵錯資訊的可用性和適當的同步處理。 不過,如果pCollectDbgInfo參數指向之DXGKARG_COLLECTDBGINFO結構的Reason成員設定為VIDEO_TDR_TIMEOUT_DETECTED或VIDEO_ENGINE_TIMEOUT_DETECTED,驅動程式必須確定DxgkDdiCollectDbgInfo是可分頁的,請在 IRQL = PASSIVE_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