С двумя const
, безусловно, это должно быть признаком, достаточным для того, чтобы вы не могли его изменить :-). Но, если серьезно, одно из них утверждает, что указатель не должен изменяться, а другое - что данные, на которые указывает указатель, не должны изменяться.
Вот почему вы получаете нарушение прав доступа.
Вам нужно будет скопировать , а не просто преобразовать данные в другой буфер, который несколько менее постоянен. Подсказка: Buffer.BlockCopy - это то, что нужно.