| Предыдущий | Следующий |
| MF_E_FORMAT_CHANGE_NOT_SUPPORTED | MF_E_DRM_UNSUPPORTED |
MF_E_INVALID_WORKQUEUE
Что означает MF_E_INVALID_WORKQUEUE
MF_E_INVALID_WORKQUEUE (0xC00D36FF) — Операция завершилась ошибкой из-за недопустимого сочетания идентификатора очереди работ и флагов.
Асинхронные операции Media Foundation выполняются через рабочие очереди. В API вроде MFPutWorkItem очередь задаётся числовым идентификатором: это может быть стандартная очередь платформы либо выделенная очередь, полученная через MFAllocateWorkQueue или MFAllocateWorkQueueEx. Ошибка означает, что переданный идентификатор нельзя использовать для данного вызова.
Что проверить и как подтвердить исправление
Записывайте идентификатор в момент создания очереди, при передаче его компоненту, при каждой постановке работы и при MFUnlockWorkQueue. Ищите неинициализированное поле, старый ID после освобождения очереди, ошибку копирования значения или неверный ID, выбранный настройками обратного вызова.
Учитывайте время жизни очереди: Microsoft требует компенсировать каждый MFAllocateWorkQueue или MFLockWorkQueue соответствующим MFUnlockWorkQueue. Этот HRESULT не означает, что очередь просто занята или что обратный вызов выполнился с ошибкой; сначала нужно доказать корректность самого идентификатора и его владения в момент постановки работы.
Документация для результата 0xC00D36FF: MFPutWorkItem · Using Work Queues · MFAllocateWorkQueueEx.
Нужно найти другой код? Найти другой код состояния или ошибки.
