/// <summary> /// Creates a SECURITY_DESCRIPTOR with DACL = null, which allows full access to Everyone. /// </summary> /// <param name="sd">The SECURITY_DESCRIPTOR structure.</param> #endregion public static void GetNullDaclSecurityDescriptor(out SECURITY_DESCRIPTOR sd) { if (NamedPipeNative.InitializeSecurityDescriptor(out sd, 1)) { if (!NamedPipeNative.SetSecurityDescriptorDacl(ref sd, true, IntPtr.Zero, false)) { throw new NamedPipeIOException("Error setting SECURITY_DESCRIPTOR attributes. Internal error: " + NamedPipeNative.GetLastError().ToString(), NamedPipeNative.GetLastError()); } } else { throw new NamedPipeIOException("Error setting SECURITY_DESCRIPTOR attributes. Internal error: " + NamedPipeNative.GetLastError().ToString(), NamedPipeNative.GetLastError()); } }
public static extern bool InitializeSecurityDescriptor(out SECURITY_DESCRIPTOR sd, int dwRevision);
public static extern bool SetSecurityDescriptorDacl(ref SECURITY_DESCRIPTOR sd, bool bDaclPresent, IntPtr Dacl, bool bDaclDefaulted);