사용자 모드에서 커널 모드로 전송된 프라이빗 데이터의 유효성 검사
디스플레이 미니포트 드라이버는 사용자 모드 디스플레이 드라이버에서 보낸 모든 개인 데이터의 유효성을 검사하여 미니포트 드라이버가 충돌하거나, 응답하지 않거나(중단), 어설션되거나, 프라이빗 데이터가 잘못된 경우 메모리가 손상되지 않도록 해야 합니다. 그러나 운영 체제가 "중단"되는 하드웨어를 다시 설정하기 때문에 디스플레이 미니포트 드라이버는 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 함수입니다.
- type 멤버에 DXGKQAITYPE_UMDRIVERPRIVATE 값이 지정된 경우 DXGKARG_QUERYADAPTERINFO 구조체의 pInputData 버퍼 멤버에 있는 DxgkDdiQueryAdapterInfo 함수입니다.