Hmm... you're right maybe the MFT can handle either format somehow then, would be better to check what the games are actually doing in this case. Call of Duty Black Ops 3, Shadow Warrior 2 for instance are using the MFT decoder directly.
It's possible, but I doubt it. The H.264 decoder documentation [1] states:
Input data must conform to Annex B of ISO/IEC 14496-10. The data must include the start codes. The decoder skips bytes until it finds a valid sequence parameter set (SPS) and picture parameter set (PPS) in the byte stream.
and the MPEG-4 file sink documentation [2] states:
The bitstream must conform to the H.264 Annex B format specification. In particular, NALUs must be delimited with either 3-byte or 4-byte start codes.
Of course, documentation is rarely to be trusted, and it's possible that the AVC formats are accepted anyway...
There's also the MF_NALU_LENGTH_SET and MF_NALU_LENGTH_INFORMATION attributes (https://learn.microsoft.com/en-us/windows/win32/medfound/mf-nalu-length-set) which maybe indicate that the stream is in a format or another.
I don't think so. MF_NALU_LENGTH_INFORMATION is specifically meant to provide NALU lengths out of line (cf. [3]). That would be a convenience if the data is in Annex B format, since the decoder no longer needs to scan for start codes, but it would be entirely unnecessary for AVC, since the lengths are already in line.
[1] https://learn.microsoft.com/en-us/windows/win32/medfound/h-264-video-decoder
[2] https://learn.microsoft.com/en-us/windows/win32/medfound/mpeg-4-file-sink
[3] https://learn.microsoft.com/en-us/windows/win32/medfound/mf-nalu-length-info...