title: CryptFindLocalizedName returns invalid string on multiple calls
body: <p>When I execute CryptFindLocalizedName more than once from my .Net code it comes back with invalid information.  The first call is accurate but any subsequence calls using the same string returns bad data.  I am not an expert on using the Win32 api in C# so I could be doing something wrong.</p>
  
  <p>Here is my code...</p>
  
  <pre><code>[DllImport("cryp32.dll", CharSet = CharSet.Auto]
  public static extern string CryptFindLocalizedName(
    [In] string pwszCryptName
  );
  
  public static void Test()
  {
      Console.WriteLine(CryptFindLocalizedName("My"));   // Returns "Personal"
      Console.WriteLine(CryptFindLocalizedName("My"));   // Returns "&lt;weirdchar&gt;ersonal"
  }
  </code></pre>
  
  <p>I am trying to return the Friendly Names to the certificate stores.</p>
  
  <p>What am I doing wrong?</p>