스레딩 및 동기화 수준 1
수준 1 스레딩 및 동기화에서 WDDM은 특정 함수 클래스 내에서 재입력을 허용하지 않습니다. 즉, 특정 클래스 내에서 하나의 스레드만 드라이버를 입력할 수 있습니다. 그러나 여러 수준 1 클래스의 호출과 수준 0 호출을 동시에 입력할 수 있습니다. 서로 다른 첫 번째 수준 클래스의 두 개 이상의 스레드와 0 수준 호출의 스레드를 드라이버에서 동시에 실행할 수 있지만 두 스레드는 단일 프로세스에 속할 수 없습니다.
WDDM은 스레딩 및 동기화의 수준 1에서 수행되는 디스플레이 미니포트 드라이버에 대한 호출을 다음 클래스와 같은 비진입 클래스로 분류합니다. 추가 클래스에는 VidMm, 가상 머신 및 vGPU가 포함됩니다.
포인터 클래스
WDDM은 포인터 클래스 함수 중 하나에 대한 호출을 재진입 방식으로 허용하지 않습니다. 즉, 한 번에 하나의 스레드가 다음 함수 중 하나 내에서 실행될 수 있습니다.
GPU 스케줄러 클래스
WDDM은 GPU 스케줄러 로더 클래스 함수 중 하나에 대한 호출을 재진입 방식으로 허용하지 않습니다. 즉, 한 번에 하나의 스레드가 다음 함수 중 하나 내에서 실행될 수 있습니다.
- DxgkDdiBuildPagingBuffer
- DxgkDdiPatch
- DxgkDdiPreemptCommand
- DxgkDdiQueryDependentEngineGroup
- DxgkDdiQueryEngineStatus
- DxgkDdiResetEngine
- DxgkDdiSubmitCommand
Swizzling 범위 클래스
WDDM은 다시 활성화된 방식으로 스위즐링 범위 클래스 함수 중 하나에 대한 호출을 허용하지 않습니다. 즉, 한 번에 하나의 스레드가 다음 함수 중 하나 내에서 실행될 수 있습니다.
오버레이 클래스
WDDM은 재진입 방식으로 오버레이 클래스 함수 중 하나에 대한 호출을 허용하지 않습니다. 즉, 한 번에 하나의 스레드가 다음 함수 중 하나 내에서 실행될 수 있습니다.
자식 I/O 클래스
WDDM은 재진입 방식으로 자식 I/O 클래스 함수 중 하나에 대한 호출을 허용하지 않습니다. 즉, 한 번에 하나의 스레드가 자식 디바이스당 다음 함수 중 하나 내에서 실행될 수 있습니다.
자식 I/O 클래스 함수는 자식 디바이스별로 동기화됩니다(즉, 여러 자식 디바이스에 대한 동시 호출이 허용됨). 그러나 자식 디바이스 간에 내부 종속성이 있는 경우 디스플레이 미니포트 드라이버는 필요에 따라 호출을 차단해야 합니다.
- DxgkDdiQueryChildStatus
- DxgkDdiQueryConnectionChange
- DxgkDdiQueryDeviceDescriptor
- DxgkDdiDisplayDetectControl
- DxgkDdiI2CReceiveDataFromDisplay
- DxgkDdiI2CTransmitDataToDisplay
- DxgkDdiOPMConfigureProtectedOutput
- DxgkDdiOPMCreateProtectedOutput
- DxgkDdiOPMDestroyProtectedOutput
- DxgkDdiOPMGetCertificate
- DxgkDdiOPMGetCertificateSize
- DxgkDdiOPMGetCOPPCompatibleInformation
- DxgkDdiOPMGetInformation
- DxgkDdiOPMGetRandomNumber
- DxgkDdiOPMSetSigningKeyAndSequenceNumbers
표시 클래스
WDDM은 다시 활성화된 방식으로 표시 클래스 함수 중 하나에 대한 호출을 허용하지 않습니다. 즉, 한 번에 하나의 스레드가 다음 함수 중 하나 내에서 실행될 수 있습니다.