| Предыдущий | Следующий |
| NS_E_SLOW_READ_DIGITAL | NS_E_MIXER_INVALID_CONTROL |
NS_E_MIXER_INVALID_LINE
Где этот результат возникает в рабочем процессе Player
NS_E_MIXER_INVALID_LINE (0xC00D0FA5) обозначает сопоставление запрошенной линии WinMM mixer с текущей топологией драйвера. Сохраните эту границу, даже если видимое сообщение Player шире операции, которая вернула код.
Механизм
На контрольной точке этот результат analog CD и устаревшие audio paths Player обращаются к destination mixer, source line и control через WinMM mixer API; identifiers линий и controls, а также формы values предоставляет установленный audio driver, а не само приложение. Специфичная для страницы граница — сопоставление запрошенной линии WinMM mixer с текущей топологией драйвера.
Открытие audio endpoint или наличие звука в другом приложении не доказывает существование legacy mixer line и control, запрошенных Player. Характерный сценарий возникновения результата: закэшированный ID source line CD-audio повторно используется после изменения sound driver.
Снимок состояния
| Диагностические данные | Почему это важно для invalid line |
|---|---|
| Объект и операция, вернувшие ошибку | идентификатор микшерного устройства, имя/версия драйвера, идентификаторы линии назначения и исходной линии, тип компонента, идентификатор/тип регулятора, число каналов, границы, передаваемое значение и исходный MMRESULT |
| Решающие сведения | устройство mixer, ID destination и source, тип компонента, flags линии и результат mixerGetLineInfo |
| Идентификатор поколения | Зафиксируйте то же поколение disc, device, job или операции Player, которое вернуло этот результат; reconnect или смена носителя создают уже другой тест. |
| Нижележащий результат | Сохраните первый результат device, filesystem, COM, codec, DirectShow, IMAPI или BITS, появившийся до того, как Player сопоставил его с этим результатом. |
| Контролируемое сравнение | Повторите исходный вызов, изменив только это условие: повторно перечислить линии и использовать идентификатор, возвращённый текущим драйвером. |
Как интерпретировать следующую проверку
| Наблюдение | Толкование |
|---|---|
| Зафиксированные значения соответствуют границе | Результат соответствует условию сопоставление запрошенной линии WinMM mixer с текущей топологией драйвера; сначала исправьте его, прежде чем менять несвязанные codec, driver или playlist. |
| Сбой нижнего уровня произошёл до этого результата | Сохраните этот более ранний HRESULT или результат устройства, поскольку он может быть лишь отображением ошибки на уровне Player. |
| Тот же вызов проходит после одного изолированного изменения | Сравнение подтверждает диагностику границы invalid line, а не общий сбой установки. |
| После повторной проверки код изменился | Эта граница пройдена; диагностируйте новый HRESULT как следующую независимую стадию. |
Он сужает границу сбоя до сопоставление запрошенной линии WinMM mixer с текущей топологией драйвера. Его наличие не доказывает общесистемный сбой мультимедиа; перед изменением не связанных компонентов Player определите операцию, которой принадлежит ошибка.
Близкие коды с другими владельцами
| Связанный результат | Другая диагностическая граница |
|---|---|
NS_E_MIXER_INVALID_CONTROL | поиск элемента управления громкостью, отключением звука или маршрутизацией в корректной линии микшера |
NS_E_MIXER_INVALID_VALUE | применение значения, нарушающего допустимые границы или форму выбранного элемента управления микшером |
NS_E_MIXER_UNKNOWN_MMRESULT | преобразование результата WinMM mixer, не распознанного оболочкой Player |
Целевое исправление
Для этого случая повторно перечислить линии и использовать идентификатор, возвращённый текущим драйвером. Пересоздайте только объект, который вернул он и повторите исходную операцию с теми же контролируемыми входными данными.
При проверке он не записывайте в mixer угаданные control IDs или ranges; после изменения device или driver заново перечислите topology и сохраните исходный MMRESULT.
Mixer line — это topology node, а не volume control
mixerGetLineInfo разрешает destinations и sources, такие как speakers, wave output или analog CD input. Зафиксируйте mixer device ID, destination index, source index, component type и возвращённый line identifier. После изменения driver закэшированный line ID может больше ничего не обозначать, даже если то же имя endpoint видно в другом месте. Повторную enumeration нужно начинать с topology destination/source, а не с отдельных controls.
Полезное сравнение — запросить line сначала по component type, затем по координатам destination/source. Если оба запроса неуспешны, требуемый topology node отсутствует. Если line разрешается, а сбой возникает только при последующем запросе control, правильный результат относится к уровню control, а не к нему.
Технические ссылки
- Функция mixerOpen.
- Функция mixerGetLineInfo.
- Функция mixerGetLineControls.
- Функция mixerSetControlDetails.
Нужно найти другой код? Найти другой код состояния или ошибки.