Validando valores de índice
Um driver de exibição no modo de usuário pode passar "Projetado para o Microsoft Windows" para teste de Logotipo de Hardware, independentemente de executar a validação de índice. No entanto, para garantir que o driver funcione com aplicativos Microsoft DirectX que possam passar índices inválidos, um driver de exibição no modo de usuário deve executar a validação de índice.
Você deve considerar os seguintes itens:
Os aplicativos DirectX 8.0 e DirectX 9.0 podem passar um valor de 0 ao serem renderizados com um buffer de vértice. Nessa situação, somente o vértice 0 deve ser referenciado. O valor stride é definido no membro Stride da estrutura D3DDDIARG_SETSTREAMSOURCE em uma chamada para a função SetStreamSource do driver de exibição no modo de usuário.
Uma chamada para a função SetStreamSourceUM do driver não inclui o tamanho dos dados de vértice. Ou seja, o tamanho do buffer de memória do usuário que fornece os dados de vértice aos quais o parâmetro pUMBuffer de SetStreamSourceUM aponta não é especificado.
O membro NumVertices da estrutura D3DDDIARG_DRAWINDEXEDPRIMITIVE ou D3DDDIARG_DRAWINDEXEDPRIMITIVE2 nunca é definido como 0 em uma chamada para a função DrawIndexedPrimitive ou DrawIndexedPrimitive2 do driver. O driver deve definir o índice máximo permitido como (NumVertices - 1).