LsaRetrievePrivateData 函数 (ntsecapi.h)

请勿将 LSA 专用数据函数用于通用数据加密和解密。 请改用 CryptProtectDataCryptUnprotectData 函数。 仅当需要按照机密对象数据模型中所述操作 LSA 机密时,才使用 LSA 专用数据函数

语法

NTSTATUS LsaRetrievePrivateData(
  [in]  LSA_HANDLE          PolicyHandle,
  [in]  PLSA_UNICODE_STRING KeyName,
  [out] PLSA_UNICODE_STRING *PrivateData
);

参数

[in] PolicyHandle

Policy 对象的句柄。 句柄必须具有POLICY_GET_PRIVATE_INFORMATION访问权限。 有关详细信息,请参阅 打开策略对象句柄

[in] KeyName

指向 LSA_UNICODE_STRING 结构的指针,该结构包含存储专用数据的密钥的名称。

若要创建专用对象,请将以下前缀之一添加到密钥名称。

前缀 含义
L$
对于本地对象。
G$
对于全局对象。
M$
对于计算机对象。
 

如果不创建这些专用类型之一,则无需指定键名称前缀。 有关详细信息,请参阅 私有数据对象

[out] PrivateData

指向变量的指针,该变量接收指向包含私有数据的 LSA_UNICODE_STRING 结构的指针。

如果不再需要该信息,请将返回的指针传递给 LsaFreeMemory

返回值

如果函数成功,该函数将返回STATUS_SUCCESS。

如果函数失败,它将返回 NTSTATUS 值,该值可以是以下值或 LSA 策略函数返回值之一。

返回代码 说明
STATUS_OBJECT_NAME_NOT_FOUND
没有私有数据存储在 KeyName 参数指定的名称下。
 

可以使用 LsaNtStatusToWinError 函数将 NTSTATUS 值转换为 Windows 错误代码。

注解

必须以管理员身份运行此过程,否则调用将失败并出现ERROR_ACCESS_DENIED。

要求

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

另请参阅

LSA_UNICODE_STRING

LsaFreeMemory

LsaStorePrivateData