[DllImport("advapi32.dll", SetLastError = true)]
static extern int SetEntriesInAcl(
int cCountOfExplicitEntries,
ref EXPLICIT_ACCESS pListOfExplicitEntries,
IntPtr OldAcl,
out IntPtr NewAcl);
private void SomeMethod()
{
EXPLICIT_ACCESS explicit_access = new EXPLICIT_ACCESS();
// заполнение структуры explicit_access значениями
IntPtr pDACL = IntPtr.Zero;
SetEntriesInAcl(1, ref explicit_access, IntPtr.Zero, out pDACL);
}
При вызове функции SetEntriesInAcl вылетает AccessViolationException: attempted to read or write protected memory. Изолировала этот код и поняла, что если он выполняется под .NET 4.6.2, то нормально отрабатывает. А вот если выполняется под версией 4.0, то вылетает исключение. Поменять целевую платформу не могу. Что сделать, чтобы данная функция успешно отрабатывала в моём проекте?
Продвижение своими сайтами как стратегия роста и независимости