public static extern int NCryptProtectSecret(
     [In] SafeProtectionDescriptorHandle hDescriptor,
     [In] uint dwFlags,
     [In] byte[] pbData,
     [In] uint cbData,
     [In] IntPtr pMemPara,
     [In] IntPtr hWnd,
     [Out] out SafeLocalAllocHandle ppbProtectedBlob,
     [Out] out uint pcbProtectedBlob);
 public static extern int NCryptCreateProtectionDescriptor(
     [In, MarshalAs(UnmanagedType.LPWStr)] string pwszDescriptorString,
     [In] ProtectionDescriptorCreationFlags dwFlags,
     [Out] out SafeProtectionDescriptorHandle phDescriptor);