public static bool AllocateAndInitializeSid(byte nSubAuthorityCount, uint nSubAuthority0, uint nSubAuthority1, uint nSubAuthority2, uint nSubAuthority3, uint nSubAuthority4, uint nSubAuthority5, uint nSubAuthority6, uint nSubAuthority7, out SafeSidPtr pSid) { SafeLocalFree safeLocalFree = null; try { SID_IDENTIFIER_AUTHORITY sID_IDENTIFIER_AUTHORITY = default(SID_IDENTIFIER_AUTHORITY); sID_IDENTIFIER_AUTHORITY.m_Value0 = SafeSidPtr.SECURITY_NT_AUTHORITY[0]; sID_IDENTIFIER_AUTHORITY.m_Value1 = SafeSidPtr.SECURITY_NT_AUTHORITY[1]; sID_IDENTIFIER_AUTHORITY.m_Value2 = SafeSidPtr.SECURITY_NT_AUTHORITY[2]; sID_IDENTIFIER_AUTHORITY.m_Value3 = SafeSidPtr.SECURITY_NT_AUTHORITY[3]; sID_IDENTIFIER_AUTHORITY.m_Value4 = SafeSidPtr.SECURITY_NT_AUTHORITY[4]; sID_IDENTIFIER_AUTHORITY.m_Value5 = SafeSidPtr.SECURITY_NT_AUTHORITY[5]; int cb = Marshal.SizeOf(sID_IDENTIFIER_AUTHORITY); safeLocalFree = SafeLocalFree.LocalAlloc(cb); Marshal.StructureToPtr(sID_IDENTIFIER_AUTHORITY, safeLocalFree.DangerousGetHandle(), true); return(NativeMemoryMethods.AllocateAndInitializeSid(safeLocalFree, nSubAuthorityCount, nSubAuthority0, nSubAuthority1, nSubAuthority2, nSubAuthority3, nSubAuthority4, nSubAuthority5, nSubAuthority6, nSubAuthority7, out pSid)); } finally { if (safeLocalFree != null) { safeLocalFree.Close(); } } }
protected override bool ReleaseHandle() { if (this.m_pBlob != null) { NativeMemoryMethods.LocalFree(this.Blob.pbData); this.m_pBlob.Close(); } return(true); }
public SafeCoTaskMem Alloc(int cb) { SafeCoTaskMem safeCoTaskMem = NativeMemoryMethods.CoTaskMemAlloc(cb); if (safeCoTaskMem.IsInvalid) { safeCoTaskMem.SetHandleAsInvalid(); throw new OutOfMemoryException(); } return(safeCoTaskMem); }
public static SafeLocalFree LocalAlloc(int flags, int cb) { SafeLocalFree safeLocalFree = NativeMemoryMethods.LocalAlloc(flags, (UIntPtr)(ulong)cb); if (safeLocalFree.IsInvalid) { safeLocalFree.SetHandleAsInvalid(); int lastWin32Error = Marshal.GetLastWin32Error(); throw new Win32Exception(lastWin32Error); } return(safeLocalFree); }
protected override bool ReleaseHandle() { return(NativeMemoryMethods.LocalFree(base.handle) == IntPtr.Zero); }
protected override bool ReleaseHandle() { NativeMemoryMethods.CoTaskMemFree(base.handle); return(true); }