| Предыдущий | Следующий |
| NS_E_CURL_INVALIDURL | NS_E_CURL_INVALIDPORT |
NS_E_CURL_CANTWALK
Диагностика NS_E_CURL_CANTWALK в конвейере Windows Media
NS_E_CURL_CANTWALK (0xC00D132B) возвращается в вспомогательный компонент не может разрешить или пройти указанный URL до запрошенного элемента мультимедиа. Это указывает на проверку URL cantwalk, поэтому диагностику следует начинать с объекта и операции, которым принадлежит эта контрольная точка, а не с общего сброса проигрывателя.
До открытия сокета проигрыватель разбирает URL на схему, authority, узел, порт, путь и экранированные данные при выделении случая cantwalk. Он также может объединять относительную ссылку с базовым URL или преобразовывать файловый URL в путь; для каждой операции действуют свои правила допустимости в контрольной точке cantwalk. В случае NS_E_CURL_CANTWALK сохраните самый ранний результат нижнего уровня, поскольку оболочки могут сопоставить несколько разных причин одному HRESULT при трассировке пути cantwalk.
Где возникает сбой
В проверке URL cantwalk компонент уже принял предыдущие предусловия, но не может пройти границу, описанную как вспомогательный компонент не может разрешить или пройти указанный URL до запрошенного элемента мультимедиа. Это различие важно: успешное открытие файла, разрешение имени узла или создание объекта COM не доказывает допустимость этой последующей операции при сборе данных о cantwalk.
Наиболее убедительное воспроизведение — разберите ту же строку на компоненты, исправьте только первый отклонённый компонент и повторите вызов без изменения идентичности ресурса до закрытия инцидента cantwalk. Если тот же вызов проходит после этого единственного изменения, данные подтверждают границу NS_E_CURL_CANTWALK. Если этого не происходит, вернитесь к первой вложенной ошибке, а не расширяйте область исправления при выделении случая cantwalk.
Сохранение исходного и разобранного URL
| Что зафиксировать | Как это помогает выделить NS_E_CURL_CANTWALK |
|---|---|
| Ответственный вызов | Запишите метод API, идентичность объекта, поток или обратный вызов и метку времени для проверки URL cantwalk. |
| Решающие значения | исходная неизменённая строка, число символов, кодировка, базовый URL при его наличии, разобранные схема, узел, порт и путь, а также требуемая и предоставленная длины выходного буфера при трассировке пути cantwalk. |
| Поколение объекта | Отметьте, когда были созданы объект чтения, записи, граф, объект URL, сеанс потоковой передачи или поставщик метаданных; устаревшее состояние может повторно вызывать NS_E_CURL_CANTWALK после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до NS_E_CURL_CANTWALK; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте один заведомо исправный ресурс, проходящий ту же проверку URL cantwalk, и измените только отклонённое предусловие. |
Эксперимент с одним компонентом URL
- Запишите
0xC00D132B,NS_E_CURL_CANTWALK, точную операцию и время первого сбоя в диагностической записи cantwalk. - Сохраните исходную неизменённую строку, число символов, кодировку, базовый URL при его наличии, разобранные схему, узел, порт и путь, а также требуемую и предоставленную длины выходного буфера при выделении случая cantwalk.
- Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданный до изменения соответствующей конфигурации или ресурса в контрольной точке cantwalk.
- Выполните один изолированный тест: разберите ту же строку на компоненты, исправьте только первый отклонённый компонент и повторите вызов без изменения идентичности ресурса при трассировке пути cantwalk.
- Повторите действие через тот же API и тот же протокольный путь; другой проигрыватель или локальная копия полезны только для сравнения, но не доказывают исправление проверки URL cantwalk.
- Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный последующий результат при сборе данных о cantwalk.
Что доказывает результат анализатора
| Результат повторной проверки | Толкование для NS_E_CURL_CANTWALK |
|---|---|
| Тот же вызов по-прежнему возвращает код | Значения, управляющие проверкой URL cantwalk, не изменились либо вызывающий код по-прежнему использует старое поколение объекта. |
| Новый объект работает успешно | Время жизни или кэшированное состояние способствовало появлению NS_E_CURL_CANTWALK; исправьте повторное создание объекта вместо применения обходного решения ко всей системе в диагностической записи cantwalk. |
| Вызов доходит до другого HRESULT | Граница проверки URL cantwalk пройдена. Диагностируйте новый код на его собственной стадии формата, графа, URL, сети или метаданных в контрольной точке cantwalk. |
| Ошибка возникает только для одного ресурса | Данные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий отказ при трассировке пути cantwalk. |
Близкие результаты не взаимозаменяемы
Главное различие: Ошибки синтаксиса URL возникают до обращения к DNS сервера, выбора прокси или создания сеанса потоковой передачи при контролируемой повторной проверке cantwalk.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_CURL_INVALIDSCHEME | Сравните ответственный API и первое отклонённое значение; это соседняя контрольная точка, а не обязательно та же причина, что и у NS_E_CURL_CANTWALK. |
NS_E_CURL_INVALIDURL | По состоянию объекта и порядку операций определите, какой код является определяющим, если оба появляются в одной трассировке до закрытия инцидента cantwalk. |
NS_E_CURL_INVALIDPORT | Сохраните этот результат отдельно, если он появляется только после устранения условия NS_E_CURL_CANTWALK. |
Действия, вводящие в заблуждение
- слепое декодирование и повторное кодирование всего URL может изменить зарезервированные разделители и идентичность ресурса при выделении случая cantwalk.
- Не стирайте данные о первом появлении
NS_E_CURL_CANTWALKмногократными повторными попытками; обратные вызовы и повторные соединения могут заменить полезное состояние более поздней обобщающей ошибкой в контрольной точке cantwalk. - Не публикуйте учётные данные, материалы защищённого содержимого или полные частные URL при трассировке пути cantwalk. Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения проверки URL cantwalk.
Технические источники
- RFC 3986: общий синтаксис URI
- Обработка URL с помощью WinINet
- CreateUri
- ParseURL
- Реестр HRESULT Microsoft
Закрывайте инцидент только после того, как исходная операция NS_E_CURL_CANTWALK успешно выполняется на текущем объекте и наблюдается ожидаемое следующее состояние при сборе данных о cantwalk.
Нужно найти другой код? Найти другой код состояния или ошибки.