credUnprotectA 函数 (wincred.h)

CredUnprotect 函数解密以前使用 CredProtect 函数加密的凭据。 凭据必须在调用 CredUnprotect 的同一安全上下文中加密。

语法

BOOL CredUnprotectA(
  [in]      BOOL  fAsSelf,
  [in]      LPSTR pszProtectedCredentials,
  [in]      DWORD cchProtectedCredentials,
  [out]     LPSTR pszCredentials,
  [in, out] DWORD *pcchMaxChars
);

参数

[in] fAsSelf

设置为 TRUE 可指定凭据已在当前进程的安全上下文中加密。 设置为 FALSE 可指定凭据已在调用线程安全上下文的安全上下文中加密。

[in] pszProtectedCredentials

指向指定加密凭据的字符串的指针。

[in] cchProtectedCredentials

pszProtectedCredentials 缓冲区的大小(以字符为单位)。

[out] pszCredentials

指向在输出时接收解密凭据的字符串的指针。

[in, out] pcchMaxChars

pszCredentials 缓冲区的大小(以字符为单位)。 在输出中,如果 pszCredentials 的大小不足以接收加密凭据,则此参数指定 pszCredentials 缓冲区所需的大小(以字符为单位)。

返回值

如果函数成功,则为 TRUE;否则为 FALSE

有关扩展的错误信息,请调用 GetLastError 函数。 下表显示了 GetLastError 函数的通用值。

返回代码/值 说明
ERROR_NOT_CAPABLE
用于加密凭据的安全上下文不同于用于解密凭据的安全上下文。
ERROR_INSUFFICIENT_BUFFER
pszCredentials 缓冲区的大小不足。

注解

注意

wincred.h 标头将 CredUnprotect 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 wincred.h
Library Advapi32.lib
DLL Advapi32.dll