Моя первая реакция была: почему вы копируете 2 ГБ + данных?
Возможно, ограничения вашего приложения не позволят этого, но мне кажется, что если ваш набор данных больше, чем разрешено фреймворком, вам не следует искать хитрости, чтобы обойти фреймворк. Как насчет другого способа доступа вообще?
Существует множество способов решения этой проблемы. Для начала вы можете обернуть память в поток и вытянуть данные в неуправляемый код. Вы также можете создать свой собственный интерфейс для доставки данных по частям. Вспоминаются файлы с памятью.
Не зная конкретных ограничений приложения, возможно, вы не сможете изменить неуправляемый код, я бы посоветовал найти другой метод, а не обходить рамки.