В какой-то момент будет маршалинг.В первом случае маршалинг происходит, как только вы выполняете вызов метода PInvoke.В последнем случае, поскольку вы звоните из небезопасного кода, вы можете контролировать, когда и как происходит маршалинг.Это может принести пользу, если вы выполняете несколько операций с неуправляемой памятью в своем небезопасном коде, но если он просто передает данные, все, что вы сделали, - это смещение туда, где происходит маршалинг.Во всяком случае, я бы ожидал, что PInvoke будет быстрее в этом случае, но, как всегда, профилируйте его, если это имеет значение.