Что означает код HRESULT 0xC00D1330 (NS_E_CURLHELPER_NOTRELATIVE)?

 
Предыдущий Следующий
NS_E_CURL_CANTDECODE NS_E_CURL_INVALIDBUFFERSIZE

NS_E_CURLHELPER_NOTRELATIVE

NS_E_CURLHELPER_NOTRELATIVE: данные, граница и повторная проверка

Практический смысл NS_E_CURLHELPER_NOTRELATIVE (0xC00D1330) состоит не «сбой мультимедиа», а API, которому требуется относительная ссылка, получил абсолютный URL. Это помещает сбой в контрольную точку URL notrelative и сужает набор данных, которые следует собрать до изменения состояния следующей попыткой.

До открытия сокета проигрыватель разбирает URL на схему, authority, узел, порт, путь и экранированные данные до закрытия инцидента notrelative. Он также может объединять относительную ссылку с базовым URL или преобразовывать файловый URL в путь; для каждой операции действуют свои правила допустимости в диагностической записи notrelative. В случае NS_E_CURLHELPER_NOTRELATIVE сохраните самый ранний результат нижнего уровня, поскольку оболочки могут сопоставить несколько разных причин одному HRESULT при выделении случая notrelative.

Сохранение исходного и разобранного URL

Что зафиксироватьКак это помогает выделить NS_E_CURLHELPER_NOTRELATIVE
Ответственный вызовЗапишите метод API, идентичность объекта, поток или обратный вызов и метку времени для проверки URL notrelative.
Решающие значенияисходная неизменённая строка, число символов, кодировка, базовый URL при его наличии, разобранные схема, узел, порт и путь, а также требуемая и предоставленная длины выходного буфера при трассировке пути notrelative.
Поколение объектаОтметьте, когда были созданы объект чтения, записи, граф, объект URL, сеанс потоковой передачи или поставщик метаданных; устаревшее состояние может повторно вызывать NS_E_CURLHELPER_NOTRELATIVE после изменения конфигурации.
Первый вложенный результатСохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до NS_E_CURLHELPER_NOTRELATIVE; более поздние сообщения интерфейса менее конкретны.
Случай для сравненияИспользуйте один заведомо исправный ресурс, проходящий ту же проверку URL notrelative, и измените только отклонённое предусловие.

Анатомия сбоя

Проверка URL notrelative достигается, когда API, которому требуется относительная ссылка, получил абсолютный URL. После NS_E_CURLHELPER_NOTRELATIVE вызывающий код не должен предполагать, что существует следующий фильтр, пакет, сеанс или состояние метаданных.

В качестве отрицательного контроля передайте синтаксически относительную ссылку и объедините её с тем же абсолютным базовым URL как отрицательный контроль в контрольной точке notrelative. Более поздний HRESULT означает, что эта контрольная точка пройдена, а новый результат относится к другой стадии при трассировке пути notrelative.

Близкие результаты не взаимозаменяемы

Главное различие: URL может быть синтаксически допустимым, но непригодным для API, которому требуется относительная ссылка при контролируемой повторной проверке notrelative.

Близкий HRESULTКак его сравнивать
NS_E_CURLHELPER_NOTAFILEСравните ответственный API и первое отклонённое значение; это соседняя контрольная точка, а не обязательно та же причина, что и у NS_E_CURLHELPER_NOTRELATIVE.
NS_E_CURL_CANTDECODEПо состоянию объекта и порядку операций определите, какой код является определяющим, если оба появляются в одной трассировке до закрытия инцидента notrelative.
NS_E_CURL_INVALIDBUFFERSIZEСохраните этот результат отдельно, если он появляется только после устранения условия NS_E_CURLHELPER_NOTRELATIVE.

Эксперимент с одним компонентом URL

  1. Запишите 0xC00D1330, NS_E_CURLHELPER_NOTRELATIVE, точную операцию и время первого сбоя при выделении случая notrelative.
  2. Сохраните исходную неизменённую строку, число символов, кодировку, базовый URL при его наличии, разобранные схему, узел, порт и путь, а также требуемую и предоставленную длины выходного буфера в контрольной точке notrelative.
  3. Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданный до изменения соответствующей конфигурации или ресурса при трассировке пути notrelative.
  4. Выполните один изолированный тест: передайте синтаксически относительную ссылку и объедините её с тем же абсолютным базовым URL при контролируемой повторной проверке notrelative.
  5. Повторите действие через тот же API и тот же протокольный путь; другой проигрыватель или локальная копия полезны только для сравнения, но не доказывают исправление проверки URL notrelative.
  6. Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный последующий результат до закрытия инцидента notrelative.

Что доказывает результат анализатора

Результат повторной проверкиТолкование для NS_E_CURLHELPER_NOTRELATIVE
Тот же вызов по-прежнему возвращает кодЗначения, управляющие проверкой URL notrelative, не изменились либо вызывающий код по-прежнему использует старое поколение объекта.
Новый объект работает успешноВремя жизни или кэшированное состояние способствовало появлению NS_E_CURLHELPER_NOTRELATIVE; исправьте повторное создание объекта вместо применения обходного решения ко всей системе при выделении случая notrelative.
Вызов доходит до другого HRESULTГраница проверки URL notrelative пройдена. Диагностируйте новый код на его собственной стадии формата, графа, URL, сети или метаданных при трассировке пути notrelative.
Ошибка возникает только для одного ресурсаДанные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий отказ при контролируемой повторной проверке notrelative.

Действия, вводящие в заблуждение

  • слепое декодирование и повторное кодирование всего URL может изменить зарезервированные разделители и идентичность ресурса при сборе данных о notrelative.
  • Не стирайте данные о первом появлении NS_E_CURLHELPER_NOTRELATIVE многократными повторными попытками; обратные вызовы и повторные соединения могут заменить полезное состояние более поздней обобщающей ошибкой до закрытия инцидента notrelative.
  • Не публикуйте учётные данные, материалы защищённого содержимого или полные частные URL в диагностической записи notrelative. Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения проверки URL notrelative.

Технические источники

Считайте NS_E_CURLHELPER_NOTRELATIVE устранённым только тогда, когда тот же путь API проходит эту контрольную точку; успех в другом проигрывателе или с кэшированной копией является лишь дополнительным подтверждением в контрольной точке notrelative.


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