Leia o arquivo mapeado na memória ou saiba seu tamanho para lê-lo corretamente

Nesta questão,

Ler todo o conteúdo do arquivo mapeado na memória ou Accessor de Visão Mapeada na Memória sem saber o tamanho dele

existe um problema, o(int)stream.Length não está me dando o tamanho correto, mas sim o tamanho do buffer interno usado! Eu preciso atualizar esta questão porque é muito urgente.

A questão principal era:

Eu preciso de algo semelhante a ReadToEnd ou ReadAllBytes para ler todo o conteúdo do MemoryMappedFile usando o MappedViewAccessor se eu não sei o tamanho dele, como posso fazê-lo?

Eu procurei por isso, eu vi essa pergunta, mas não é a coisa que estou procurando:

Como posso ler rapidamente bytes de um arquivo mapeado de memória no .net?

A velha resposta foi:

bar

public static ReadMMFAllBytes(string fileName)
{
    using (var mmf = MemoryMappedFile.OpenExisting(fileName))
    {
        using (var stream = mmf.CreateViewStream())
        {
            using (BinaryReader binReader = new BinaryReader(stream))
            {
                return binReader.ReadBytes((int)stream.Length));
            }
        }
    }
}

Nesta pergunta:

Comprimento de arquivo mapeado de memória

Não há resposta exata da pergunta exata! a questão é sobre algo mais que o título.

questionAnswers(1)

yourAnswerToTheQuestion