Threading e livello di sincronizzazione uno
A Livello One threading e sincronizzazione, WDDM non consente di entrare nuovamente all'interno di una determinata classe di funzione. Vale a dire, solo un thread può immettere il driver all'interno di una determinata classe. Tuttavia, le chiamate da più classi di livello One e chiamate Level Zero possono essere immesse simultaneamente. Anche se due o più thread di classi e thread di primo livello diversi da chiamate a livello zero possono essere in esecuzione contemporaneamente nel driver, nessun thread può appartenere a un singolo processo.
WDDM classifica le chiamate nel driver miniport visualizzato eseguite sotto il livello Uno di threading e sincronizzazione in classi non dientrancy, ad esempio le classi seguenti. Le classi aggiuntive includono VidMm, macchine virtuali e vGPU.
Classe Pointer
WDDM non consente una chiamata a una delle funzioni della classe puntatore in modo reentrant. Ovvero, al massimo, un thread può essere eseguito all'interno di una delle funzioni seguenti in un determinato momento:
Classe utilità di pianificazione GPU
WDDM non consente una chiamata a una delle funzioni di classe del caricatore dell'utilità di pianificazione GPU in modo reentrant. Ovvero, al massimo, un thread può essere eseguito all'interno di una delle funzioni seguenti in un determinato momento:
- DxgkDdiBuildPagingBuffer
- DxgkDdiPatch
- DxgkDdiPreemptCommand
- DxgkDdiQueryDependentEngineGroup
- DxgkDdiQueryEngineStatus
- DxgkDdiResetEngine
- DxgkDdiSubmitCommand
Classe Range swizzling
WDDM non consente una chiamata a una delle funzioni della classe range swizzling in modo reentrant. Ovvero, al massimo, un thread può essere eseguito all'interno di una delle funzioni seguenti in un determinato momento:
Classe Sovrimpressione
WDDM non consente una chiamata a una delle funzioni della classe di sovrapposizione in modo reentrant. Ovvero, al massimo, un thread può essere eseguito all'interno di una delle funzioni seguenti in un determinato momento:
Classe I/O figlio
WDDM non consente una chiamata a una delle funzioni di classe I/O figlio in modo reentrant. Ovvero, al massimo, un thread può essere eseguito all'interno di una delle funzioni seguenti per ogni dispositivo figlio in un determinato momento.
Le funzioni di classe I/O figlio vengono sincronizzate per ogni dispositivo figlio, ovvero le chiamate simultanee a più dispositivi figlio sono consentite. Tuttavia, se esistono dipendenze interne tra dispositivi figlio, il driver miniport visualizzato deve bloccare le chiamate in base alle esigenze.
- DxgkDdiQueryChildStatus
- DxgkDdiQueryConnectionChange
- DxgkDdiQueryDeviceDescriptor
- DxgkDdiDisplayDetectControl
- DxgkDdiI2CReceiveDataFromDisplay
- DxgkDdiI2CTransmitDataToDisplay
- DxgkDdiOPMConfigureProtectedOutput
- DxgkDdiOPMCreateProtectedOutput
- DxgkDdiOPMDestroyProtectedOutput
- DxgkDdiOPMGetCertificate
- DxgkDdiOPMGetCertificateSize
- DxgkDdiOPMGetCOPPCompatibleInformation
- DxgkDdiOPMGetInformation
- DxgkDdiOPMGetRandomNumber
- DxgkDdiOPMSetSigningKeyAndSequenceNumbers
Classe Display
WDDM non consente una chiamata a una delle funzioni della classe di visualizzazione in modo reentrant. Ovvero, al massimo, un thread può essere eseguito all'interno di una delle funzioni seguenti in un determinato momento: