//////////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////////// private static void _ReadSidAndName(IntPtr pointer, out String sid, out String account) { sid = String.Empty; account = String.Empty; IntPtr lpSid = IntPtr.Zero; try { advapi32.ConvertSidToStringSid(pointer, ref lpSid); if (IntPtr.Zero == lpSid) { return; } sid = Marshal.PtrToStringAuto(lpSid); if (!Enumeration.ConvertSidToName(pointer, out account)) { return; } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { kernel32.LocalFree(lpSid); } }