| Предыдущий | Следующий |
| MF_E_NO_MORE_TYPES | MF_E_UNEXPECTED |
MF_E_UNSUPPORTED_SERVICE
Что означает MF_E_UNSUPPORTED_SERVICE
MF_E_UNSUPPORTED_SERVICE (0xC00D36BA) — объект не предоставляет службу, которую вызывающий код запросил через MFGetService или IMFGetService::GetService.
Поиск службы в Media Foundation отличается от обычного QueryInterface. В вызове участвуют два идентификатора: guidService выбирает саму службу, а riid — требуемый интерфейс этой службы. Возвращаемый интерфейс при этом не обязан принадлежать исходному объекту. Поэтому наличие нужного COM-интерфейса где-либо в системе ещё не означает, что конкретный объект публикует его как указанную службу.
Что проверить и как подтвердить исправление
Зафиксируйте исходный объект, точный guidService и riid. Сначала проверьте, документирована ли эта служба для данного типа объекта. Например, метаданные источника запрашиваются через специальный GUID службы; другой медиаисточник может такой службы вообще не предоставлять.
Не лечите MF_E_UNSUPPORTED_SERVICE переустановкой COM-компонента, пока не доказано, что служба должна существовать именно на этом объекте. Если функция необязательна, выбирайте предусмотренный альтернативный путь. Исправление подтверждается успешным MFGetService с тем же GUID службы и ожидаемым IID.
Документация для результата 0xC00D36BA: MFGetService · Service Interfaces · Metadata providers.
Нужно найти другой код? Найти другой код состояния или ошибки.