Validando dados privados enviados do modo de usuário para o modo Kernel
Um driver de miniporto de exibição deve validar todos os dados privados enviados do driver de exibição do modo de usuário para evitar que o driver de miniporte falhe, não responda (pendurado), afirme ou corrompa a memória se os dados privados forem inválidos. No entanto, como o sistema operacional redefine o hardware que "trava", o driver de miniporto de exibição pode enviar instruções para a GPU (unidade de processamento gráfico) que faz com que a GPU "trava". Os dados privados podem incluir qualquer um dos seguintes itens:
Conteúdo do buffer de comando enviado para a função DxgkDdiRender ou DxgkDdiRenderKm do driver de miniport no membro do buffer pCommand da estrutura de DXGKARG_RENDER .
Dados enviados para as seguintes funções de driver de miniport:
- A função DxgkDdiCreateAllocation nos membros do buffer pPrivateDriverData das estruturas de DXGKARG_CREATEALLOCATION e DXGK_ALLOCATIONINFO .
- A função DxgkDdiEscape no membro do buffer pPrivateDriverData da estrutura DXGKARG_ESCAPE .
- A função DxgkDdiAcquireSwizzlingRange no membro privateDriverData de 32 bits da estrutura DXGKARG_ACQUIRESWIZZLINGRANGE .
- A função DxgkDdiReleaseSwizzlingRange no membro privateDriverData de 32 bits da estrutura DXGKARG_RELEASESWIZZLINGRANGE .
- A função DxgkDdiQueryAdapterInfo no membro do buffer pInputData da estrutura DXGKARG_QUERYADAPTERINFO quando o valor DXGKQAITYPE_UMDRIVERPRIVATE é especificado no membro Type .