BCryptSetProperty

The BCryptSetProperty function sets the value of a named property for a CNG object.

Syntax

NTSTATUS BCryptSetProperty(
         BCRYPT_HANDLE hObject,
         LPCWSTR pszProperty,
         PUCHAR pbInput,
         ULONG cbInput,
         ULONG dwFlags
)  

Parameters

hObject
Type: BCRYPT_HANDLE 

[in, out] A handle that represents the CNG object to set the property value for.

pszProperty
Type: LPCWSTR 

[in] A pointer to a null-terminated Unicode string that contains the name of the property to set. This can be one of the predefined Cryptography Primitive Property Identifiers or a custom property identifier.

pbInput
Type: PUCHAR 

[in] The address of a buffer that contains the new property value. The cbInput parameter contains the size of this buffer.

cbInput
Type: ULONG 

[in] The size, in bytes, of the pbInput buffer.

dwFlags
Type: ULONG 

[in] A set of flags that modify the behavior of this function. No flags are defined for this function.

Return value

Type: NTSTATUS 

Returns a status code that indicates the success or failure of the function.

Return codes

Possible return codes include, but are not limited to, the following.

Return code Description
STATUS_SUCCESS The function was successful.
STATUS_INVALID_HANDLE The handle in the hObject parameter is not valid.
STATUS_INVALID_PARAMETER One or more parameters are not valid.
STATUS_NOT_SUPPORTED The named property specified by the pszProperty parameter is not supported or is read-only.

Remarks

Depending on what processor modes a provider supports, BCryptSetProperty can be called either from user mode or kernel mode. Kernel mode callers can execute either at PASSIVE_LEVELIRQL or DISPATCH_LEVEL IRQL. If the current IRQL level is DISPATCH_LEVEL, any pointers passed to BCryptSetProperty must refer to nonpaged (or locked) memory. If the object specified in the hObject parameter is a handle, it must have been opened by using the BCRYPT_PROV_DISPATCH flag.

Requirements

Header: Declared in bcrypt.h.

Library: Use bcrypt.lib.