| Предыдущий | Следующий |
| NS_E_TRANSCODE_DELETECACHEERROR | NS_E_CD_EMPTY_TRACK_QUEUE |
NS_E_CD_NO_BUFFERS_READ
Граница сбоя и её владелец
NS_E_CD_NO_BUFFERS_READ со значением 0xC00D11F8 фиксирует условие получение первых цифровых аудиобуферов от объекта чтения компакт-диска. Для NS_E_CD_NO_BUFFERS_READ вызов-источник и его состояние важнее для диагностики, чем более поздняя сводная ошибка Player.
Механизм возникновения
На контрольной точке NS_E_CD_NO_BUFFERS_READ Windows Media Player определяет вставленный носитель, считывает таблицу содержимого, создаёт объект чтения компакт-диска, затем выбирает цифровое извлечение аудио или аналоговый путь воспроизведения; при копировании добавляются создание пути назначения и кодировщик, выбранный в настройках копирования. Граница этой страницы — получение первых цифровых аудиобуферов от объекта чтения компакт-диска.
Для NS_E_CD_NO_BUFFERS_READ распознавание привода ещё не доказывает доступность читаемых аудиосекторов, устойчивого пути цифрового чтения или допустимого каталога копирования. Характерный сценарий: объект чтения создаётся, но до ошибки нижнего уровня не возвращает ни одного буфера.
Поля трассировки, которые следует сохранить
| Данные | Почему эти данные важны: не прочитано ни одного аудиобуфера |
|---|---|
| Объект и операция, вернувшие ошибку | Идентификатор физического привода, поколение смены носителя, номер диска и дорожки, результат чтения оглавления, цифровой или аналоговый режим, флаг коррекции ошибок, скорость чтения, состояние копирования, выходной формат и первая ошибка привода нижнего уровня |
| Решающие сведения | идентичность объекта чтения, запрошенное число буферов, временные метки обратных вызовов и результат чтения нижнего уровня |
| Идентификатор поколения | Зафиксируйте то же поколение диска, устройства, задания или операции Player, которое вернуло NS_E_CD_NO_BUFFERS_READ; повторное подключение или смена носителя создаёт другой тест. |
| Исходный результат | Сохраните первый результат устройства, файловой системы, COM, кодека, DirectShow, IMAPI или BITS, полученный до того, как Player сопоставил его с NS_E_CD_NO_BUFFERS_READ. |
| Контролируемое сравнение | Повторите исходную операцию в контролируемом сценарии, изменив только условие «не прочитано ни одного аудиобуфера», и сохраните точный путь, имя файла, владельца операции и первый результат файловой системы. |
Что доказывает сравнение
| Наблюдение | Толкование |
|---|---|
| Зафиксированные значения соответствуют границе | Устраните именно исходное условие «не прочитано ни одного аудиобуфера», затем создайте новый объект операции и проверьте результат по сохранённым данным. |
Сбой нижнего уровня произошёл до NS_E_CD_NO_BUFFERS_READ | Сохраните этот более ранний HRESULT или результат устройства, поскольку NS_E_CD_NO_BUFFERS_READ может быть лишь его отображением на уровне Player. |
| Тот же вызов проходит после одного изолированного изменения | Такое сравнение подтверждает диагноз не прочитано ни одного аудиобуфера, а не общий сбой установки. |
После повторной проверки код изменился на NS_E_CD_NO_BUFFERS_READ | Граница NS_E_CD_NO_BUFFERS_READ пройдена; диагностируйте новый HRESULT как следующую независимую стадию. |
NS_E_CD_NO_BUFFERS_READ ограничивает область сбоя получение первых цифровых аудиобуферов от объекта чтения компакт-диска. Наличие NS_E_CD_NO_BUFFERS_READ не доказывает общесистемный сбой мультимедиа; перед изменением не связанных компонентов Player определите операцию, которой принадлежит ошибка.
Путь принятия решения
- Зафиксируйте
0xC00D11F8NS_E_CD_NO_BUFFERS_READ, а также точную операцию Player/API и момент первого появления ошибки. - Сохраните идентичность объекта чтения, запрошенное число буферов, временные метки обратных вызовов и результат чтения нижнего уровня; сделайте это до извлечения носителя, повторного подключения устройства, отмены задания или пересоздания объекта Player.
- Для
NS_E_CD_NO_BUFFERS_READсопоставьте результат с идентификатором физического привода, поколением смены носителя, номером диска и дорожки, результатом чтения оглавления, цифровым или аналоговым режимом, флагом коррекции ошибок, скоростью чтения, состоянием копирования, выходным форматом и первой ошибкой привода нижнего уровня. - Повторите исходную операцию в контролируемом сценарии, изменив только условие «не прочитано ни одного аудиобуфера», и сохраните точный путь, имя файла, владельца операции и первый результат файловой системы.
- Создайте новое поколение операции и убедитесь, что исходный вызов проходит границу не прочитано ни одного аудиобуфера.
Близкие по смыслу результаты
| Связанный результат | Другая диагностическая граница |
|---|---|
NS_E_CD_EMPTY_TRACK_QUEUE | запуск воспроизведения или извлечения без дорожки компакт-диска в очереди |
NS_E_CD_NO_READER | создание объекта чтения или фильтра Player для выбранного привода |
NS_E_CD_ISRC_INVALID | проверка International Standard Recording Code, связанного с дорожкой |
Безопасное исправление
Устраните именно исходное условие «не прочитано ни одного аудиобуфера», затем создайте новый объект операции и проверьте результат по сохранённым данным. NS_E_CD_NO_BUFFERS_READ и повторите этот вызов.
При проверке NS_E_CD_NO_BUFFERS_READ не полируйте диск, не меняйте драйвер, режим чтения и формат копирования в одном тесте; сохраните первую сбойную дорожку и изменяйте по одной границе за раз.
Исходные материалы
- О копировании содержимого CD.
- Объектная модель Windows Media Player.
- IDiscRecorder2::DisableMcn и уведомление о смене носителя.
- Структура WAVEFORMATEX.
Нужно найти другой код? Найти другой код состояния или ошибки.