Независимо от того, что вы делаете, вы должны проверить, что значения смещения / счетчика действительны для данных байтовых массивов. После того, как вы это сделаете, я не вижу, как выполнение цикла for
в C # будет медленнее, чем P / Invoking метода Win32. Похоже, что в P / Invoke было бы много служебных данных, которые не стоили бы.
Кроме того, всегда есть небезопасный C #.
Как и во всех вопросах производительности, вы должны провести собственное тестирование производительности. Но для меня это звучит так, будто вы пытаетесь оптимизировать работу раньше времени.