I use:
MFCreateSourceReaderFromMediaSource
Just tried and this works for me:
IMFSourceResolver* resolver;
IMFMediaSource* source;
MF_OBJECT_TYPE objectType;
MFCreateSourceResolver (&resolver);
resolver->CreateObjectFromByteStream (byteStream, NULL, MF_RESOLUTION_MEDIASOURCE | MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE, NULL, &objectType, (::IUnknown**)&source);
MFCreateSourceReaderFromMediaSource (source, NULL, &reader);
It does not matter if I pass the filename as the second argument to CreateObjectFromByteStream or pass MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE. Both create a working media source.
My IMFByteStream does not implement the IMFAttributes interface, so I cannot quickly try setting the MF_BYTESTREAM_CONTENT_TYPE attribute instead.