| Предыдущий | Следующий |
| NS_E_ACTIVE_SG_DEVICE_DISCONNECTED | NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER |
NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED
Диагностический смысл помимо стандартного текста
Для NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED (0xC00D1BA6) значимым событием является отключение управляющего устройства активной группы источников во время захвата. Сохраните связь границы, вернувшей NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED, с исходным обратным вызовом Encoder или вызовом COM.
Почему сеанс может дойти до этой точки
Управление устройствами Windows Media Encoder координирует источник захвата с подключаемым модулем управления, транспортом ленты, отметками начала и конца и списком монтажных решений в сеансе, который возвращает NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED. В контрольной точке отключение управления активным устройством SG устройство захвата и управляющее устройство должны относиться к одному работоспособному аппаратному пути.
Видеозахват может оставаться доступным, когда отдельный подключаемый модуль управления теряет контроль над транспортом, поэтому сбой управления устройством не обязательно означает ошибку формата захвата в сеансе, который возвращает NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED. Один конкретный способ возникновения условия: интерфейс управления DV-декой исчезает, пока её видеопоток ещё некоторое время остаётся доступным. Поэтому при проверке NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED нужно сохранить поколение объекта и числовые параметры, а не только снимок итогового диалогового окна.
Поля трассировки, имеющие диагностическую ценность
| Поле | Что сохранить |
|---|---|
| Решающие значения | идентификатор управляющего устройства, состояние подключаемого модуля, событие транспорта и состояние устройства захвата |
| Объект, вернувший ошибку | CLSID подключаемого модуля управления, идентификатор управляемого устройства, состояние транспорта, наличие ленты, число записей EDL, значения отметок начала и конца, результат позиционирования, привязка группы источников и событие отключения |
| Связь с сеансом | то же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, которые привели к NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, полученный до того, как Encoder сопоставил условие с NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED |
| Контролируемое сравнение | заведомо рабочий сеанс, в котором изменён только параметр, указанный границей отключение управления активным устройством SG |
Матрица решений
| Наблюдение | Как его интерпретировать |
|---|---|
| Наблюдение подтверждает этот результат | Решающими данными являются идентификатор управляющего устройства, состояние подключаемого модуля, событие транспорта и состояние устройства захвата. Они подтверждают отключение управляющего устройства активной группы источников во время захвата в том же поколении объекта. |
| Наблюдение указывает на более ранний сбой | Зафиксированные значения удовлетворяют правилу отключение управления активным устройством SG, но источник, драйвер, активация COM или файловая операция раньше возвращает другой HRESULT. |
| Наблюдение указывает на более поздний сбой | Encoder проходит эту границу — отключение управляющего устройства активной группы источников во время захвата, — но затем на следующей стадии происходит сбой кодека, архива или приёмника трансляции. |
| Проверка после исправления | Внесите одно изолированное изменение: остановите захват с управлением устройством и перед возобновлением повторно подключите либо замените управляющий путь. После этого исходный вызов отключение управления активным устройством SG должен пройти ту же контрольную точку. |
Практическое влияние NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED ограничено переходом управления ленточным устройством и списками монтажных решений, которому принадлежит отключение управляющего устройства активной группы источников во время захвата. Само по себе NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED не доказывает, что повреждены все входные данные, отсутствуют все кодеки или полностью неработоспособна установка Windows Media. В показательном случае, когда интерфейс управления DV-декой исчезает, а её видеопоток ещё кратковременно доступен, сохраните первый сбойный вызов и идентификатор его объекта, чтобы последующая оболочка не заменила данные отключение управления активным устройством SG.
Путь принятия решения
- Зафиксируйте
0xC00D1BA6,NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prx, затем сохраните идентификатор управляющего устройства, состояние подключаемого модуля, событие транспорта и состояние устройства захвата. - Для
NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTEDпроверьте предварительное условие управления ленточным устройством и списков монтажных решений, не меняя одновременно источник, профиль и выходной приёмник. - Выполните одно контролируемое сравнение, изменив только это условие: остановите захват с управлением устройством и перед возобновлением повторно подключите либо замените управляющий путь.
- После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий граф отбросил прежнее состояние отключение управления активным устройством SG.
Коды с похожими симптомами, но другими владельцами
| Результат | Почему это другая граница |
|---|---|
NS_E_TOO_MANY_DEVICECONTROL | одним и тем же устройством кодирования пытаются управлять несколько подключаемых модулей |
NS_E_END_OF_TAPE | транспорт достигает записанного конца ленты либо пригодная лента отсутствует |
NS_E_DEVCONTROL_FAILED_SEEK | подключаемый модуль управления устройством не может установить ленту на запрошенную отметку начала EDL |
Безопасное восстановление
Устраните условие, вызвавшее ошибку: остановите захват с управлением устройством и перед возобновлением повторно подключите либо замените управляющий путь. Затем перестройте только ту часть графа Encoder, которая затронута NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED, и повторите исходный вызов.
Не перематывайте, не извлекайте и не перезаписывайте ленту до фиксации сбойной записи EDL и текущего временного кода: это изменит данные, используемые для воспроизведения ошибки позиционирования или конца ленты в сеансе, возвращающем NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED.
Исходные материалы для NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED
- WMEncEditDecisionList.Item.
- Структура управления устройством WMTIMECODE.
- IWMEncSource.MarkOut.
- Подготовка группы источников к кодированию.
Нужно найти другой код? Найти другой код состояния или ошибки.