Marshal.SecureStringToBSTR(SecureString) Method

Definition

Important

This API is not CLS-compliant.

Allocates an unmanaged binary string (BSTR) and copies the contents of a managed SecureString object into it.

C#
public static IntPtr SecureStringToBSTR(System.Security.SecureString s);
C#
[System.CLSCompliant(false)]
public static IntPtr SecureStringToBSTR(System.Security.SecureString s);
C#
[System.Security.SecurityCritical]
public static IntPtr SecureStringToBSTR(System.Security.SecureString s);

Parameters

s
SecureString

The managed object to copy.

Returns

IntPtr

The address, in unmanaged memory, where the s parameter was copied to, or 0 if a null object was supplied.

Attributes

Exceptions

The s parameter is null.

There is insufficient memory available.

Remarks

The SecureStringToBSTR method is useful for custom marshaling or when mixing managed and unmanaged code. Because this method allocates the unmanaged memory required for a string, always free the BSTR when finished by calling the ZeroFreeBSTR method.

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1