| Предыдущий | Следующий |
| NS_E_INVALID_NUM_PASSES | NS_E_ATTRIBUTE_NOT_ALLOWED |
NS_E_ATTRIBUTE_READ_ONLY
NS_E_ATTRIBUTE_READ_ONLY: данные, граница и повторная проверка
Практический смысл NS_E_ATTRIBUTE_READ_ONLY (0xC00D0BD6) — не «сбой мультимедиа», а ситуация, когда вызывающая сторона попыталась изменить атрибут, значение которого принадлежит SDK или вычисляется им. Это помещает сбой в проверку медиаформата атрибут только для чтения и сужает набор данных, которые нужно собрать до того, как следующая попытка изменит состояние.
При трассировке пути атрибут только для чтения Windows Media Format разделяет профиль сжатого потока, необработанный входной формат и декодированный выход, выбранный объектом чтения. Затем объект записи пакетирует образцы, применяет атрибуты и необязательные расширения единиц данных, поэтому сбой на одной границе не доказывает нечитаемость самого контейнера ASF при контролируемой повторной проверке атрибут только для чтения. В случае NS_E_ATTRIBUTE_READ_ONLY сохраняйте самый ранний результат нижнего уровня, поскольку оболочки могут сопоставить несколько разных причин с одним HRESULT в данных об атрибут только для чтения.
Данные профиля и образцов
| Что зафиксировать | Как это помогает выделить NS_E_ATTRIBUTE_READ_ONLY |
|---|---|
| Ответственный вызов | Зафиксируйте метод API, идентификатор объекта, поток или обратный вызов и временную метку для проверки медиаформата атрибут только для чтения. |
| Решающие значения | интерфейс объекта, идентификатор атрибута или свойства, номер потока, тип данных, флаги изменяемости и операция установки или получения в диагностической записи атрибут только для чтения. |
| Поколение объекта | Отметьте, когда были созданы объект чтения, записи, граф, объект URL, сеанс потоковой передачи или поставщик метаданных; устаревшее состояние может повторно вызывать NS_E_ATTRIBUTE_READ_ONLY после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до NS_E_ATTRIBUTE_READ_ONLY; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте один заведомо рабочий ресурс, проходящий ту же проверку медиаформата атрибут только для чтения, изменив только отклонённое предварительное условие. |
Структура сбоя
Проверка медиаформата атрибут только для чтения достигается, когда вызывающая сторона пытается изменить атрибут, значение которого принадлежит SDK или вычисляется им. После NS_E_ATTRIBUTE_READ_ONLY вызывающая сторона не должна считать, что следующее состояние фильтра, пакета, сеанса или метаданных существует.
В качестве отрицательной проверки до закрытия инцидента атрибут только для чтения сначала запросите возможности объекта и существующий тип атрибута, затем выполните ту же операцию с одним документированным изменяемым свойством. Более поздний HRESULT означает, что эта контрольная точка пройдена, а новый результат относится к другой стадии в диагностической записи атрибут только для чтения.
Близкие результаты не взаимозаменяемы
Главное различие: read-only означает, что атрибут существует, но не может быть изменён; not-allowed означает, что атрибут недопустим в данном контексте при локализации случая атрибут только для чтения.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_SDK_BUFFERTOOSMALL | Сравните ответственный API и первое отклонённое значение; это соседняя контрольная точка, а не обязательно та же причина, что и у NS_E_ATTRIBUTE_READ_ONLY. |
NS_E_INVALID_NUM_PASSES | Используйте состояние объекта и порядок операций, чтобы определить авторитетный код, если оба присутствуют в одной трассировке пути атрибут только для чтения. |
NS_E_ATTRIBUTE_NOT_ALLOWED | Сохраните этот результат отдельно, если он появляется только после устранения условия NS_E_ATTRIBUTE_READ_ONLY. |
Контролируемая проверка медиаформата
- Запишите
0xC00D0BD6,NS_E_ATTRIBUTE_READ_ONLY, точную операцию и время первого сбоя для данных об атрибут только для чтения. - До закрытия инцидента атрибут только для чтения сохраните интерфейс объекта, идентификатор атрибута или свойства, номер потока, тип данных, флаги изменяемости и операцию установки или получения.
- Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданный до изменения соответствующей конфигурации или ресурса в диагностической записи атрибут только для чтения.
- Выполните один изолированный тест: сначала запросите возможности объекта и существующий тип атрибута, затем выполните ту же операцию с одним документированным изменяемым свойством при локализации случая атрибут только для чтения.
- Повторите запрос через тот же API и протокольный путь; другой проигрыватель или проверка локальной копии полезны только для сравнения, но не доказывают исправление проверки медиаформата атрибут только для чтения.
- Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный последующий результат при трассировке пути атрибут только для чтения.
Как интерпретировать следующий HRESULT
| Результат повторной проверки | Толкование для NS_E_ATTRIBUTE_READ_ONLY |
|---|---|
| Тот же вызов по-прежнему возвращает код | Значения, управляющие проверкой медиаформата атрибут только для чтения, не изменились либо вызывающая сторона всё ещё использует старое поколение объекта. |
| Новый объект работает успешно | Время жизни или кэшированное состояние способствовало появлению NS_E_ATTRIBUTE_READ_ONLY; исправьте пересоздание объекта вместо применения обходного решения на уровне всего компьютера в данных об атрибут только для чтения. |
| Вызов доходит до другого HRESULT | Граница проверки медиаформата атрибут только для чтения пройдена. Диагностируйте новый код на его собственной стадии формата, графа, URL, сети или метаданных в диагностической записи атрибут только для чтения. |
| Ошибка возникает только для одного ресурса | Данные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий сбой при локализации случая атрибут только для чтения. |
Действия, вводящие в заблуждение
- одновременная смена нескольких параметров профиля и кодека, скрывающая первое несовместимое поле в контрольной точке атрибут только для чтения.
- Не стирайте данные о первом появлении
NS_E_ATTRIBUTE_READ_ONLYмногократными повторами; обратные вызовы и переподключения могут заменить полезное состояние более поздней ошибкой оболочки при трассировке пути атрибут только для чтения. - Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL при контролируемой повторной проверке атрибут только для чтения. Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения проверки медиаформата атрибут только для чтения.
Технические ссылки
- Обзор Windows Media Format SDK
- Входные, потоковые и выходные форматы
- Профили
- Объекты Windows Media SDK
- Реестр HRESULT Microsoft
Считайте NS_E_ATTRIBUTE_READ_ONLY устранённой только тогда, когда тот же путь API проходит эту контрольную точку; успех в другом проигрывателе или с кэшированной копией является лишь дополнительным подтверждением до закрытия инцидента атрибут только для чтения.
Нужно найти другой код? Найти другой код состояния или ошибки.