| Предыдущий | Следующий |
| NS_E_PROPERTY_NOT_SUPPORTED | NS_E_METADATA_FORMAT_NOT_SUPPORTED |
NS_E_SCHEMA_CLASSIFY_FAILURE
NS_E_SCHEMA_CLASSIFY_FAILURE: данные, граница и повторная проверка
Практический смысл этот результат (0xC00D32D4) означает не общий «сбой медиа», а конкретное условие: документ метаданных не удаётся классифицировать по известной схеме. Это локализует сбой в операции с метаданными и определяет, какие данные нужно сохранить до следующей попытки.
Метаданные Windows Media могут относиться к файлу или потоку и поступать из заголовка ASF, вычисляемых атрибутов, сетевого или кэширующего поставщика либо обработчика метаданных конкретного формата. Возможности чтения и редактирования, локаль и схема запросов являются независимыми характеристиками. Сохраните самый ранний результат нижнего уровня: оболочки могут свести несколько разных причин к одному HRESULT.
Данные об атрибуте, схеме и локали
| Зафиксируйте | Как это помогает выделить этот результат |
|---|---|
| Ответственный вызов | Запишите метод API, идентификатор объекта, поток выполнения или обратный вызов и временную метку. |
| Решающие значения | Сохраните идентификаторы поставщика и схемы, имя таблицы или класса, свойство запроса, оператор, тип ключа, входное значение и диагностический результат поставщика, полученный до этого HRESULT. |
| Поколение объекта | Отметьте время создания объекта чтения, объекта записи, графа, URL-объекта, сеанса потоковой передачи или поставщика метаданных; устаревшее состояние может повторно вызвать этот результат после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до этого результата; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте один заведомо исправный ресурс, проходящий ту же проверку метаданных, и изменяйте только отклонённое предусловие. |
Структура сбоя
Этот этап достигается, когда документ метаданных не удаётся классифицировать по известной схеме. после него.
В качестве отрицательного контроля перечислите схему поставщика, выполните минимальный допустимый запрос и добавляйте спорный ключ, свойство или оператор только после его успешного выполнения. Более поздний HRESULT означает, что эта контрольная точка пройдена, а новый код относится к другому этапу.
Близкие результаты не взаимозаменяемы
Главное различие: поиск метаданных, проверка схемы и возможность редактирования — разные контрольные точки, даже если во всех операциях участвует один и тот же атрибут.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_INVALID_QUERY_PROPERTY | Запрос метаданных ссылается на свойство, отсутствующее в доступной для поиска схеме |
NS_E_PROPERTY_NOT_SUPPORTED | Поставщик метаданных отклонил эту операцию |
NS_E_METADATA_FORMAT_NOT_SUPPORTED | Ни один обработчик метаданных не поддерживает формат документа или встроенных метаданных |
Проверка метаданных в режиме чтения
- Запишите
0xC00D32D4, он, точную операцию и время первого сбоя до повторной попытки. - Сохраните идентификаторы поставщика и схемы, имя таблицы или класса, свойство запроса, оператор, тип ключа, входное значение и диагностический результат поставщика, полученный до этого HRESULT.
- Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданный до изменения соответствующей конфигурации или ресурса.
- Выполните один изолированный тест: перечислите схему поставщика, выполните минимальный допустимый запрос и добавляйте спорный ключ, свойство или оператор только после его успешного выполнения.
- Повторите проверку через тот же API и протокольный путь; другой проигрыватель или локальная копия полезны только для сравнения и сами по себе не доказывают исправление этой границы.
- Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT, если он появился, как отдельный результат следующего этапа.
Интерпретация ответа поставщика
| Результат повторной проверки | Толкование для него |
|---|---|
| Тот же вызов по-прежнему возвращает код | Значения операции с метаданными не изменились либо вызывающая сторона всё ещё использует старое поколение объекта. |
| Новый объект работает успешно | Время жизни или кэшированное состояние способствовало появлению он; исправьте пересоздание объекта вместо общесистемного обходного решения. |
| Вызов доходит до другого HRESULT | граница исходного запроса пройдена. Диагностируйте новый код отдельно на его собственном этапе формата, графа, URL, сети или метаданных. |
| Сбой возникает только для одного ресурса | Данные указывают на содержимое, URL, точку публикации, поток, атрибут или состояние конкретного объекта, а не на общий отказ системы. |
Действия, вводящие в заблуждение
- Не удаляйте кэш или теги метаданных до фиксации поставщика, ключа атрибута, типа и локали, при которых появился результат.
- Не стирайте данные о первом появлении он многократными повторами: обратные вызовы и повторные соединения могут заменить полезное исходное состояние более поздней ошибкой верхнего уровня.
- Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL. Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения зафиксированного состояния метаданных.
Технические ссылки
- Возможности метаданных Windows Media
- Получение атрибутов метаданных
- Изменение атрибутов метаданных
- Объект редактора метаданных
- Реестр HRESULT Microsoft
Считайте он устранённым только после того, как тот же путь API проходит эту контрольную точку; успех в другом проигрывателе или с кэшированной копией является лишь дополнительным свидетельством.
Нужно найти другой код? Найти другой код состояния или ошибки.