Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
{ if (!session->pending_command && list_empty(&session->queued_commands)) hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, &session->commands_callback, &op->IUnknown_iface);
list_add_tail(&session->queued_commands, &op->entry);
if (first)
list_add_head(&session->queued_commands, &op->entry);
else
list_add_tail(&session->queued_commands, &op->entry);
It would be less of a disturbance to special case SESSION_CMD_END here.