title: Semaphore ctor failed in Windows 8 x64 when using "low integrity level"
body: <p>I'm trying to create/open a named Semaphore in desktop application in Windows 8 x64  with low integrity level using .Net 4.0/4.5.</p>
  
  <p>Same code works on Windows 7 x64 but fail on Windows 8 Entreprise x64 with a System.IO.IOException: "A required privilege is not held by the client".</p>
  
  <p>Code is as follow (a console application):</p>
  
  <pre><code>class Program
  {
     static void Main(string[] args)
     {
        System.Security.AccessControl.SemaphoreSecurity sec = null;
  
        //[low integrity level[
        sec = new System.Security.AccessControl.SemaphoreSecurity();
        sec.SetSecurityDescriptorSddlForm("S:(ML;;NW;;;LW)");
        //]low integrity level]
  
        try
        {
           bool createdNew;
           var sem = new System.Threading.Semaphore(0, int.MaxValue, "MySemaphoreName", out createdNew, sec);
           if (createdNew) { Console.WriteLine("Semaphore created"); }
           else            { Console.WriteLine("Semaphore opened"); }
        }
        catch (Exception ex)
        {
           Console.WriteLine("Exception occured {0}", ex);
        }
        ConsoleKeyInfo cki = Console.ReadKey();
     }
  }
  </code></pre>
  
  <p>It works on both system when removing following block:</p>
  
  <pre><code>sec = new System.Security.AccessControl.SemaphoreSecurity();
  sec.SetSecurityDescriptorSddlForm("S:(ML;;NW;;;LW)");
  </code></pre>
  
  <p>Any help is welcome.</p>