Указатель на файловый поток для неуправляемой DLL

У меня есть сторонняя неуправляемая DLL, которая хочет, чтобы я поставлял им указатель (принимает IntPtr) на огромный непрерывный блок памяти (около 500 МБ). Несмотря на то, что он не превышает объем памяти, с которым мы можем работать, обычно невозможно получить непрерывный большой объем памяти без ошибок. Этот блок памяти является всего лишь буфером изображений, и хотя он вряд ли будет использовать все это, если я попытаюсь предоставить ему блок меньшего размера, и он потребляет его, он падает. Также обратите внимание, что большой объем памяти - это максимальный размер, поддерживаемый устройством, но объем, который требуется устройству в любой момент времени, зависит от того, что пользователь делает с устройством.

Сторонняя организация не желает вносить какие-либо изменения в свою DLL. Я спросил, не захотят ли они просто взять путь к файлу и сделать, чтобы DLL выгрузила данные в сырой файл на жестком диске.

В любом случае, я не знаю, как сформулировать то, что я ищу, и сомневаюсь, что это даже возможно, но я ищу какой-то способ передачи IntPtr, который вместо указания на непрерывный блок памяти указывает на файл поток или что-то, что идет прямо в файл на жестком диске. Возможно ли что-то подобное? Если да, то в каком пространстве имен.Net мне нужно искать.

0 ответов

Другие вопросы по тегам