사용자 모드에서 커널 모드로 전송된 프라이빗 데이터 유효성 검사
디스플레이 미니포트 드라이버는 사용자 모드 디스플레이 드라이버에서 전송된 모든 개인 데이터의 유효성을 검사하여 개인 데이터가 잘못된 경우 미니포트 드라이버가 충돌하지 않고 응답(중단), 어설션 또는 손상된 메모리를 방지해야 합니다. 그러나 운영 체제가 "중단"되는 하드웨어를 다시 설정하기 때문에 디스플레이 미니포트 드라이버는 GPU를 "중단"하는 GPU(그래픽 처리 장치)에 지침을 보낼 수 있습니다. 프라이빗 데이터에는 다음 항목이 포함될 수 있습니다.
명령 버퍼 콘텐츠는 DXGKARG_RENDER 구조체의 pCommand 버퍼 멤버에서 미니포트 드라이버의 DxgkDdiRender 또는 DxgkDdiRenderKm 함수로 전송됩니다.
다음 미니포트 드라이버 함수로 전송된 데이터:
- DXGKARG_CREATEALLOCATION 및 DXGK_ALLOCATIONINFO 구조체의 pPrivateDriverData 버퍼 멤버에 있는 DxgkDdiCreateAllocation 함수 입니다.
- DXGKARG_ESCAPE 구조체의 pPrivateDriverData 버퍼 멤버에 있는 DxgkDdiEscape 함수입니다.
- DXGKARG_ACQUIRESWIZZLINGRANGE 구조체의 PrivateDriverData 32비트 멤버에 있는 DxgkDdiAcquireSwizzlingRange 함수입니다.
- DXGKARG_RELEASESWIZZLINGRANGE 구조체의 PrivateDriverData 32비트 멤버에 있는 DxgkDdiReleaseSwizzlingRange 함수입니다.
- DXGKQAITYPE_UMDRIVERPRIVATE 값이 Type 멤버에 지정된 경우 DXGKARG_QUERYADAPTERINFO 구조체의 pInputData 버퍼 멤버에 있는 DxgkDdiQueryAdapterInfo 함수입니다.