Что означает код HRESULT 0xC00D117C (NS_E_PDA_FAIL_SELECT_DEVICE)?

 
Предыдущий Следующий
NS_E_MEMSTORAGE_BAD_DATA NS_E_PDA_FAIL_READ_WAVE_FILE

NS_E_PDA_FAIL_SELECT_DEVICE

Граница сбоя и принадлежность

NS_E_PDA_FAIL_SELECT_DEVICE со значением 0xC00D117C фиксирует условие привязка операции к выбранному пользователем устройству из текущего перечисления. Вызов-источник и его состояние важнее для диагностики, чем более поздняя сводная ошибка Player.

Нижележащий механизм

На контрольной точке этот результат Windows Media Device Manager выступает посредником между Player, поставщиком службы устройства и транспортами MTP, mass-storage или legacy; перечисление, идентификация Plug and Play, доступность хранилища, поддержка форматов и отдельные файловые операции являются независимыми проверками. Специфичная для страницы граница — привязка операции к выбранному пользователем устройству из текущего перечисления.

Устройство, видимое в Explorer, всё равно может исчезнуть из WMDM session Player либо отклонить media format, filename, directory operation или storage request. Характерный сценарий: привязка операции к выбранному пользователем устройству из текущего перечисления.

Поля трассировки, которые следует сохранить

ДанныеПочему это важно для данного результата
Объект и операция, вернувшие ошибкуэкземпляр PnP и путь интерфейса, CLSID поставщика служб WMDM, идентификатор устройства или партнёрства, поколение подключения, объект хранилища и его ёмкость, результат проверки поддержки формата, версия прошивки, обратный вызов операции и первый HRESULT устройства или транспорта
Решающие сведениявыбранный index/ID, поколение массива devices, состояние connection и callback выбора
Идентификатор поколенияЗафиксируйте то же поколение диска, устройства, задания или операции Player, которое вернуло этот результат; повторное подключение или смена носителя создаёт уже другой тест.
Нижележащий результатСохраните первый результат устройства, файловой системы, COM, codec, DirectShow, IMAPI или BITS, полученный до того, как Player сопоставил его с этим результатом.
Контролируемое сравнениеПовторите исходный вызов, изменив только это условие: заново перечислить устройства и выбирать по стабильному идентификатору устройства, а не по устаревшему индексу.

Что доказывает сравнение

НаблюдениеТолкование
Зафиксированные значения соответствуют границеРезультат соответствует условию привязка операции к выбранному пользователем устройству из текущего перечисления; сначала исправьте его, прежде чем менять несвязанные codec, driver или playlist.
Сбой нижнего уровня произошёл до этого результатаСохраните этот более ранний HRESULT или результат устройства, поскольку он может быть лишь отображением ошибки на уровне Player.
Тот же вызов проходит после одного изолированного измененияСравнение подтверждает диагностику этой границы, а не общий сбой установки.
После повторной проверки код изменилсяЭта граница пройдена; диагностируйте новый HRESULT как следующую независимую стадию.

Он сужает границу сбоя до привязка операции к выбранному пользователем устройству из текущего перечисления. Его наличие не доказывает общесистемный сбой мультимедиа; перед изменением не связанных компонентов Player определите операцию, которой принадлежит ошибка.

Путь принятия решения

  1. Зафиксируйте 0xC00D117C, он, точную операцию Player/API и первую временную метку её появления.
  2. Сохраните выбранный index/ID, поколение массива devices, состояние connection и callback выбора; сделайте это до извлечения носителя, повторного подключения устройства, отмены задания или пересоздания объекта Player.
  3. сопоставьте результат с экземпляром PnP и путём интерфейса, CLSID поставщика служб WMDM, идентификатором устройства или партнёрства, поколением подключения, объектом хранилища и его ёмкостью, результатом поддержки формата, версией прошивки, обратным вызовом операции и первым HRESULT устройства или транспорта.
  4. Один раз воспроизведите сбой с исходными source и destination, затем примените только это изменение: заново перечислить устройства и выбирать по стабильному идентификатору устройства, а не по устаревшему индексу.
  5. Создайте новое поколение операции и убедитесь, что исходный вызов проходит границу «привязка операции к выбранному пользователем устройству из текущего перечисления».

Близкие альтернативы

Связанный результатДругая диагностическая граница
NS_E_PDA_FAIL_READ_WAVE_FILEоткрытие и разбор WAV source, используемого для передачи на устройство или преобразования
NS_E_PDA_UNSPECIFIED_ERRORполучение ошибки устройства или поставщика служб без более конкретного сопоставления Player
NS_E_NO_PDAперечисление переносного устройства для запрошенной операции Player

Безопасное исправление

Исправьте эту границу: убедитесь, что вы заново перечислить устройства и выбирать по стабильному идентификатору устройства, а не по устаревшему индексу. Затем заново получите interface или состояние носителя, которое привело к нему и повторите этот вызов.

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

Исходные материалы


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