Jak zapisać dane buforowe IntPtr do pliku (najszybszy sposób)?

Używam tego kodu do zapisywania bajtów z bufora IntPtr w niezarządzanym kodzie do pliku. To prosta funkcja wywołania zwrotnego:

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();
}

Chcę przechowywać te dane do pliku i wyrzucić je. Z tego, co rozumiem, znajduje się bufor w niezarządzanym kodzie i drugi w kodzie MY. Nie chcę kopiować danych dookoła Chcę go bezpośrednio:

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

Do mojego zadania potrzebuję najszybszego sposobu przechowywania danych do pliku.

questionAnswers(2)

yourAnswerToTheQuestion