Site icon EfmSoft

Что означает код HRESULT 0xC00D36FF (MF_E_INVALID_WORKQUEUE)?

 
Предыдущий Следующий
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.


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

Exit mobile version