| Предыдущий | Следующий |
| NS_E_NO_SCRIPT_STREAM | NS_E_INVALIDPACKETSIZE |
NS_E_INVALIDCALL_WHILE_ARCHIVAL_RUNNING
Где Encoder возвращает этот результат
0xC00D1B74 (NS_E_INVALIDCALL_WHILE_ARCHIVAL_RUNNING) диагностически значимое событие — попытка изменить конфигурацию архива при активном archive sink. Сохраняйте границу, вернувшую этот результат, вместе с исходным callback Encoder или вызовом COM.
WMEncoder имеет состояния настройки, подготовки, работы, паузы, остановки и архивирования. Свойства, меняющие topology, обычно задаются до Start, а statistics и часть управляющих операций имеют смысл только в соответствующем состоянии для состояния «попытка изменить конфигурацию архива при активном archive sink». В сеансе, возвращающем этот результат, именно здесь проверяется условие «попытка изменить конфигурацию архива при активном archive sink».
Что уже успешно выполнено
Один и тот же method может быть допустим в одном состоянии Encoder и отклонён в другом без какого-либо дефекта file, codec или network в сеансе, возвращающем этот результат. В показательном случае invalidcall while archival running код ротации изменяет LocalFileName до завершения текущего сегмента архива. Он следует проверять на объекте, сформировавшем ошибку, а не считать общим сбоем кодека или операционной системы.
Снимок состояния, который нужно сохранить
| Поле | Что сохранить |
|---|---|
| Решающие значения | состояние архива, имя метода или свойства, выходной файл и callback, выполнивший изменение |
| Объект, вернувший ошибку | текущий Encoder RunState, активную source group, вызовы PrepareToEncode, порядок Start/Pause/Stop, состояние archive, поток и callback, инициировавшие операцию, и первый HRESULT перехода состояния |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен этот результат |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с ним |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «попытка изменить конфигурацию архива при активном archive sink» |
Как интерпретировать следующее наблюдение
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее он | Решающие данные: состояние архива, имя метода или свойства, выходной файл и callback, выполнивший изменение. Они подтверждают условие «попытка изменить конфигурацию архива при активном archive sink» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT. |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («попытка изменить конфигурацию архива при активном archive sink»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: корректно остановить архив перед изменением его назначения или режима. После этого исходный вызов должен пройти ту же контрольную точку при проверке «попытка изменить конфигурацию архива при активном archive sink». |
Практическое влияние он ограничено переходом «последовательность состояний Encoder», которому принадлежит условие «попытка изменить конфигурацию архива при активном archive sink». Сам по себе он не доказывает, что повреждены все входные данные, отсутствуют все codecs или полностью неработоспособна установка Windows Media. В типичном случае, когда код ротации изменяет LocalFileName до завершения текущего сегмента архива, сохраните первый отказавший вызов и идентичность его объекта, чтобы более поздняя оболочка не скрыла исходные данные.
Исправление на нужном уровне
Исправьте только непосредственную причину: корректно остановить архив перед изменением его назначения или режима. Затем пересоздайте затронутый объект или часть graph Encoder, повторите ту же операцию и убедитесь, что первый отказавший HRESULT больше не возникает на этой границе при проверке он.
Не скрывайте ошибку порядка безусловными повторами: запишите последовательность переходов и выполняйте операцию только в допустимом состоянии Encoder. Это позволяет повторно проверить тот же сеанс с ним без потери исходных диагностических данных.
Технические ссылки
- WMEncoder.Start.
- Подготовка группы источников к кодированию.
- WMEncoder.Flush.
- Сохранение конфигурации Windows Media Encoder.
Нужно найти другой код? Найти другой код состояния или ошибки.