Проверка значений индекса
Драйвер дисплея в пользовательском режиме может пройти "Разработано для Microsoft Windows" для тестирования логотипа оборудования, независимо от того, выполняется ли проверка индекса. Однако чтобы обеспечить работу драйвера с приложениями Microsoft DirectX, которые могут передавать недопустимые индексы, драйвер отображения пользовательского режима должен выполнять проверку индекса.
Следует учитывать следующие моменты:
Приложения DirectX 8.0 и DirectX 9.0 могут передавать значение шага 0 при отрисовки с помощью буфера вершин. В этом случае следует ссылаться только на вершину 0. Значение шага задается в элементе Stride структуры D3DDDIARG_SETSTREAMSOURCE при вызове функции SetStreamSource драйвера отображения пользовательского режима.
Вызов функции SetStreamSourceUM драйвера не включает размер данных вершины. То есть размер буфера пользовательской памяти, который предоставляет данные вершины, на которые указывает параметр pUMBufferSetStreamSourceUM , не указан.
Член NumVerticesструктуры D3DDDIARG_DRAWINDEXEDPRIMITIVE или D3DDDIARG_DRAWINDEXEDPRIMITIVE2 никогда не имеет значения 0 при вызове функции DrawIndexedPrimitive или DrawIndexedPrimitive2 драйвера. Драйвер должен установить максимально допустимый индекс (NumVertices - 1).