これを実行したいのですが、GCHandleはnull許容ではありません。バッファに関連付けられたIntPtrを取得し、後でそれを解放するためにGCHandleが必要なので、IntPtrを返すだけのオプションではありません。
public GCHandle PacketToGCHandle(PacketAdmin packet)
{
byte[] data;
bool result;
if ((data = PacketToByteData(packet)) != null)
{
GCHandle pinnedArray = GCHandle.Alloc(data, GCHandleType.Pinned);
return pinnedArray;
}
else
{
result = false;
report.BindReport(architecture.report);
}
return null;
}