title: What is [DllImport("QCall")]?
body: <p>Many methods in the .Net library are implemented in native code. Those that come from the framework itself are marked with <code>[MethodImpl(MethodImplOptions.InternalCall)]</code>. Those that come from some unmanaged DLL are marked with <code>[DllImport]</code> (e.g. <code>[DllImport("kernel32.dll")]</code>). So far nothing unusual.</p>
  
  <p>But while writing <a href="https://stackoverflow.com/a/9491084/41071">answer for another question</a>, I discovered there are many methods marked with <code>[DllImport("QCall")]</code>. They seem to be internal implementation of .Net (e.g. <code>GC._Collect()</code>).</p>
  
  <p>My question is: What exactly does <code>[DllImport("QCall")]</code> mean? What is the difference between <code>[DllImport("QCall")]</code> and <code>[MethodImpl(MethodImplOptions.InternalCall)]</code>?</p>