0

サードパーティのアンマネージ DLL があり、メモリの巨大な連続ブロック (約 500 MB) へのポインター (IntPtr を使用) を提供する必要があります。使用できるメモリの量を超えることはありませんが、エラーを発生させずに大きなメモリの連続ブロックを取得できないことはよくあります。このメモリ ブロックは単なるイメージ バッファであり、小さなブロックを提供しようとすると、すべてを消費する可能性は低いですが、それを消費するとクラッシュします。また、大量のメモリはデバイスがサポートする最大サイズですが、デバイスが常に必要とする量は、ユーザーがデバイスで何をしているかに基づいていることに注意してください。

サードパーティは、DLL に変更を加えることを望んでいません。私は、ファイル パスだけを取得し、DLL にデータをハード ドライブ上の生のファイルにダンプさせる意思があるかどうかを尋ねました。

とにかく、探しているものを言葉にする方法がわかりません。それが可能であるとは思えませんが、メモリの連続ブロックを指すのではなく、ファイルを指す IntPtr を渡す方法を探しています。ストリームまたはハード ドライブ上のファイルに直接送信されるもの。そのようなことは可能ですか?もしそうなら、どのような .Net 名前空間を調べる必要がありますか?

4

0 に答える 0