我有一个第 3 方非托管 DLL,它希望我向它们提供指向一个巨大的连续内存块(大约 500 MB)的指针(需要一个 IntPtr)。虽然它不超过我们可以使用的内存量,但通常无法在不出错的情况下获得这么大的连续内存块。这个内存块只是一个图像缓冲区,虽然如果我尝试为其提供一个较小的块并且它消耗它并崩溃它不太可能消耗所有它。另请注意,大量内存是设备支持的最大容量,但设备在任何给定时间所需的内存量取决于用户对设备的操作。
第 3 方不愿意对其 DLL 进行任何更改。我问他们是否愿意只采用文件路径并让 DLL 将数据转储到硬盘驱动器上的原始文件中。
无论如何,我不知道如何表达我正在寻找的内容,我怀疑它甚至可能,但我正在寻找某种传递 IntPtr 的方法,而不是指向一个连续的内存块指向一个文件流或直接进入硬盘驱动器上的文件的东西。这样的事情可能吗?如果是这样,我需要查看什么样的 .Net 命名空间。