To help ensure security, we recommend that hash objects be destroyed after they have been used.
BOOL CryptDestroyHash( HCRYPTHASH hHash );
The handle of the hash object to be destroyed.
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. For extended error information, call GetLastError.
The error codes prefaced by "NTE" are generated by the particular cryptographic service provider (CSP) you are using. Some possible error codes follow.
||The hash object specified by hHash is currently being used and cannot be destroyed.|
||The hHash parameter specifies a handle that is not valid.|
||The hHash parameter contains a value that is not valid.|
||The hHash handle specifies an algorithm that this CSP does not support.|
||The hash object specified by the hHash parameter is not valid.|
||The CSP context that was specified when the hash object was created cannot be found.|
When a hash object is destroyed, many CSPs overwrite the memory in the CSP where the hash object was held. The CSP memory is then freed.
There should be a one-to-one correspondence between calls to CryptCreateHash and CryptDestroyHash.
All hash objects that have been created by using a specific CSP must be destroyed before that CSP handle is released with the CryptReleaseContext function.
For an example that uses the CryptDestroyHash function, see Example C Program: Creating and Hashing a Session Key.
|Minimum supported client||Windows XP [desktop apps only]|
|Minimum supported server||Windows Server 2003 [desktop apps only]|