Многие при объявлении функции WinAPI, добавляю атрибут SetLastError, например, такое объявление:
[DllImport("NetApi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int NetLocalGroupDelMembers(
[MarshalAs(UnmanagedType.LPWStr)] string servername,
[MarshalAs(UnmanagedType.LPWStr)] string groupname,
int level,
ref LOCALGROUP_MEMBERS_INFO_3 buf,
int totalentries
);
Вопрос: зачем нужен SetLastError (с последующим Marshal.GetLastWin32Error()), если есть код возврата самого WinAPI, из которого и так можно узнать результат операции?