Что означает код HRESULT 0x88990028 (D2DERR_EFFECT_IS_NOT_REGISTERED)?

 
Предыдущий Следующий
D2DERR_INTERMEDIATE_TOO_LARGE D2DERR_INVALID_PROPERTY

D2DERR_EFFECT_IS_NOT_REGISTERED

Диагностическая граница

Штатный смысл D2DERR_EFFECT_IS_NOT_REGISTEREDПереданный Unregister идентификатор CLSID не соответствует зарегистрированному эффекту. Диагностику полезно начинать не с общего восстановления системы, а с операции уровня Direct2D object/effect/render contract, которая первой вернула этот результат.

Что сохранить до изменений

  • Зафиксируйте точный Direct2D API, object generation, device context target, effect graph/property, numeric inputs и debug-layer output; для этого результата эти данные должны относиться к первому неуспешному вызову, а не к cleanup после него.
  • Отдельно сверьте CLSID эффекта с RegisterEffectFromString/RegisterEffectFromStream и lifetime factory. Это проверяет условие «Переданный Unregister идентификатор CLSID не соответствует зарегистрированному эффекту» по фактическим параметрам, а не по имени константы.
  • Сохраните технические маркеры CLSID и один исправный запуск с теми же входными данными.

Как подтвердить причину

свести сценарий к одному объекту/графу и изменить только условие, названное конкретным результатом. После изменения повторите исходный вызов и убедитесь, что следующий ожидаемый шаг также выполняется.

До получения контрольных данных не превращать любой Direct2D HRESULT в универсальный device-recreate loop; иначе станет невозможно доказать, какое условие действительно изменило результат.

Ближайший по прежнему шаблону результат D2DERR_PRINT_JOB_CLOSED не следует считать эквивалентным: сравнивайте точное условие, указанное здесь, и первую различающуюся операцию.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.