Я не верю, что есть такая проверка безопасности от неуправляемой до управляемой.
Если вы заходите в Process Explorer, вы можете видеть, что проверки безопасности подсчитываются по мере их возникновения. Найдите свой процесс, нажмите Свойства, перейдите на вкладку .NET и выберите «.NET CLR Security» из выпадающего списка.
Я написал простое тестовое приложение, которое просто вызывает неуправляемый код, передает делегат, а затем неуправляемый код вызывает этот делегат немедленно. В каждом цикле тестирования подсчитывалась проверка безопасности для каждого вызова.
Затем я добавил [SuppressUnmanagedCodeSecurityAttribute ()] в неуправляемый вызов Managed --->, и проверки безопасности перешли на 0.