This function duplicates a cryptographic message handle by incrementing its reference count.
HCRYPTMSG WINAPI CryptMsgDuplicate(
[in] Handle of the cryptographic message to be duplicated. Duplication is done by incrementing the reference count of the message. A copy of the message is not made.
The returned handle is the same as the handle input. A copy of the message is not created. When you have finished using the duplicated message handle, decrease the reference count by calling the CryptMsgClose function.
CryptMsgDuplicate is used to increase the reference count on an HCRYPTMSGhandle so that multiple calls to CryptMsgClose are required to actually release the handle.