[DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern bool CryptEnumProviders(
[MarshalAs(UnmanagedType.U4)] int dwIndex,
[MarshalAs(UnmanagedType.U4)] ref int pdwReserved,
[MarshalAs(UnmanagedType.U4)] int dwFlags,
[MarshalAs(UnmanagedType.U4)] ref int pdwProvType,
StringBuilder pszProvName,
[MarshalAs(UnmanagedType.U4)] ref int pcbProvName);
Another kind of declaration:
[DllImport("advapi32.dll", EntryPoint = "CryptEnumProviders", SetLastError = true)]
static extern bool CryptEnumProviders(
uint dwIndex,
IntPtr pdwReserved,
uint dwFlags,
ref uint pdwProvType,
StringBuilder pszProvName,
ref uint pcbProvName);
None.
Do you know one? Please contribute it!
None.
Please add some!
[DllImport("Advapi32.dll")]
internal static extern bool CryptEnumProviders(
int dwIndex,
IntPtr pdwReserved,
int dwFlags,
ref int pdwProvType,
StringBuilder pszProvName,
ref int pcbProvName);
public static Dictionary<int, string> ReadAllProviders()
{
Dictionary<int, string> installedCSPs = Dictionary<int, string>;
int cbName;
int dwType;
int dwIndex;
StringBuilder pszName;
dwIndex = 0;
dwType = 1;
cbName = 0;
while (CryptEnumProviders(dwIndex, IntPtr.Zero, 0, ref dwType, null, ref cbName))
{
pszName = new StringBuilder(cbName);
if (CryptEnumProviders(dwIndex++, IntPtr.Zero, 0, ref dwType, pszName, ref cbName))
{
installedCSPs.Add(dwType,pszName.ToString());
}
}
return installedCSPs;
}