Como salvar dados de buffer IntPtr para arquivo (maneira mais rápida)?

Estou usando este código para salvar bytes de um buffer IntPtr no código não gerenciado para o arquivo. É uma função de retorno de chamada simples:

private void callback(IntPtr buffer, int length)
{
    byte[] bytes = new byte[length];
    Marshal.Copy(buffer, bytes, 0, length);
    FileStream file = new FileStream(filename, FileMode.Create, FileAccess.Write);
    file.Write(bytes, 0, length);
    file.Close();
}

O que eu quero é armazenar esses dados no arquivo e jogá-los fora. Pelo que entendi, há um buffer no código não gerenciado e um segundo no meu código. Eu não quero copiar os dados em torno do que eu quero diretamente:

// bad:     (unmanaged) buffer -> (managed) bytes -> file
// awesome: (unmanaged) buffer ->                    file

Para minha tarefa, preciso da maneira mais rápida de armazenar os dados no arquivo.

questionAnswers(2)

yourAnswerToTheQuestion