Что означает код HRESULT 0xC00D3702 (MF_E_OUT_OF_RANGE)?

 
Предыдущий Следующий
MF_E_UNAUTHORIZED MF_E_INVALID_CODEC_MERIT

MF_E_OUT_OF_RANGE

Что означает MF_E_OUT_OF_RANGE

MF_E_OUT_OF_RANGE (0xC00D3702) — переданное числовое значение или индекс находится вне диапазона, который допускает конкретная операция Media Foundation.

У этого HRESULT нет одного общего «диапазона Media Foundation». Границы задаёт возвращающий его метод. Например, IMFHttpDownloadRequest::QueryHeader возвращает MF_E_OUT_OF_RANGE, если dwIndex выходит за число значений запрошенного HTTP-заголовка. В примере Sequencer Source этот же код используется, когда приложение пытается добавить больше сегментов, чем допускает его список воспроизведения.

Что проверить и как подтвердить исправление

Сначала зафиксируйте метод, который непосредственно вернул 0xC00D3702, и имя проверяемого параметра. Для числового значения сохраните единицы измерения, знаковость и фактический тип; для индекса — количество элементов, относительно которого он проверяется. Особенно полезно проверить преобразования между DWORD, UINT32, UINT64 и знаковыми типами: переполнение или отрицательное значение после преобразования легко превращаются в корректный по типу, но недопустимый по величине аргумент.

Не подменяйте этот HRESULT проверкой типа данных. MF_E_INVALIDTYPE означает, что само представление значения не подходит операции, а MF_E_OUT_OF_RANGE — что представление уже принято и отвергнута величина или позиция. Исправление подтверждается повтором того же метода со значением внутри документированной границы.

Документация для результата 0xC00D3702: IMFHttpDownloadRequest::QueryHeader · Sequencer Source example · Media Foundation error codes.


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