1.については情報が足りません。引数bがpointer of pointerですが、この手のパターンの場合、メモリ確保が絡んでいて、呼び出し側が確保する or 関数側が確保するなどなどあると思います。呼び出し側となるC#はref IntPtrでいいのかどうか、というところからありそうです。
2.については単純な配列なのでMarshal.Copy()かな。構造体へのポインターならMarshal.PtrToStructure()です。
ありがとうございます。
Marshal.Copy()とMarshal.PrtToStructure() でなんとか、2点目は解決できました
1.のほうは、メモリをどう扱うのか調査中です
詳細がわかったら再度別に質問したいと思います(もしかしたらMarshal.PrtToStructureあたりで何とかなればと甘いことを考えてますが)