title: c# Environment.ProcessorCount does not always return the full number of Logical Processor, why?
body: <p>On my machine, windows 7 - Enterprise with 1 x Intel Xeon E5-1660 0 @ 3.30Ghz (6 cores/cpu with Hyper Threading activated), Environment.ProcessorCount return 12 which is exact.</p>
  
  <p>On a Windows Server 2012 with 2 x Intel Xeon E5-2697 v3 @ 2.60GHz (14 cores/cpu with Hyper Threading activated(I think because task manager show: 2 sockets, 28 cores, 56 logical processors)), Environment.ProcessorCount return 28 which appears to us as wrong because 2x14x2 = 56.</p>
  
  <p>Why on Windows Server 2012 c# method Environment.ProcessorCount does not return the proper number of logical processors?</p>
  
  <p>As Additional information, environment variables are as follows:
  NUMBER_OF_PROCESSORS=28</p>
  
  <p><img src="https://i.stack.imgur.com/LzN1f.png" alt="TaskManager"></p>
  
  <p><strong>Update 2015-05-26:</strong></p>
  
  <p>There is a more details/reasons of this related bug in my other question: <a href="https://stackoverflow.com/questions/28098082/unable-to-use-more-than-one-processor-group-for-my-threads-in-a-c-sharp-app">Unable to use more than one processor group for my threads in a C# app</a>. Mainly I think that C# does only use one processor group. What's werid was that on our server, there was 2 processor groups although there was only 56 logical processors. But this <a href="http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c04650594" rel="noreferrer">HP  CUSTOMER ADVISORY</a> explain why our server bios configuration were inducing windows in error.</p>