NCryptStreamOpenToUnprotect 函数 (ncryptprotect.h)
NCryptStreamOpenToUnprotect 函数打开一个流对象,该对象可用于将大量数据解密到用于加密的同一保护描述符。 调用 NCryptStreamUpdate 以执行解密。 若要解密较小的消息(如密钥和密码),请调用 NCryptUnprotectSecret。
语法
SECURITY_STATUS NCryptStreamOpenToUnprotect(
[in] NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
DWORD dwFlags,
[in, optional] HWND hWnd,
[out] NCRYPT_STREAM_HANDLE *phStream
);
参数
[in] pStreamInfo
指向 NCRYPT_PROTECT_STREAM_INFO 结构的指针,该结构包含用于接收解密数据的用户定义的回调函数的地址,以及指向用户定义的上下文数据的指针。
dwFlags
一个标志,指定密钥服务提供程序的其他信息。 此值可以为零或以下值。
值 | 含义 |
---|---|
|
请求关键服务提供程序不显示用户界面。 |
[in, optional] hWnd
要显示的用户界面的父窗口(如果有)的句柄。
[out] phStream
指向解密数据流句柄的指针。
返回值
返回指示函数成功或失败的状态代码。 可能的返回代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
|
函数成功。 |
|
dwFlags 参数必须包含零 (0) 或 NCRYPT_SILENT_FLAG。 |
|
phStream 和 pStreamInfo 参数不能为 NULL。
pStreamInfo 参数指向的NCRYPT_PROTECT_STREAM_INFO结构的 pfnStreamOutput 成员所指向的回调函数不能为 NULL。 |
|
内存不足,无法分配数据流。 |
注解
NCryptStreamOpenToUnprotect 函数创建可用于加密大型消息的内部流对象。 不能直接使用 对象。 相反,必须使用此函数返回的对象句柄。
在调用 NCryptStreamUpdate 函数之前调用此函数。 如果要加密大型文件,请在逐个通过文件块的循环中使用 NCryptStreamUpdate ,在文件块前进时加密每个块,并在每个块完成时通知回调。 有关详细信息,请参阅 NCryptStreamUpdate。
NCryptStreamOpenToUnprotect 函数从流标头中检索未加密的保护描述符规则字符串。 规则字符串由 NCryptStreamOpenToUnprotect 函数放置在 标头中。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | ncryptprotect.h |
Library | NCrypt.lib |
DLL | NCrypt.dll |