NCryptGetProperty 函数 (ncrypt.h)
NCryptGetProperty 函数检索密钥存储对象的命名属性的值。
语法
SECURITY_STATUS NCryptGetProperty(
[in] NCRYPT_HANDLE hObject,
[in] LPCWSTR pszProperty,
[out] PBYTE pbOutput,
[in] DWORD cbOutput,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
参数
[in] hObject
要获取其 属性的 对象的句柄。 这可以是提供程序句柄 (NCRYPT_PROV_HANDLE) ,也可以是密钥句柄 (NCRYPT_KEY_HANDLE) 。
[in] pszProperty
指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要检索的属性的名称。 这可以是预定义的 密钥存储属性标识符 之一,也可以是自定义属性标识符。
[out] pbOutput
接收属性值的缓冲区的地址。 cbOutput 参数包含此缓冲区的大小。
若要计算缓冲区所需的大小,请将此参数设置为 NULL。 所需的大小(以字节为单位)在 由印刷电路板Result 参数指向的位置返回。
[in] cbOutput
pbOutput 缓冲区的大小(以字节为单位)。
[out] pcbResult
指向 DWORD 变量的指针,该变量接收复制到 pbOutput 缓冲区的字节数。
如果 pbOutput 参数为 NULL,则缓冲区所需的大小(以字节为单位)将放置在此参数指向的位置。
[in] dwFlags
用于修改函数行为的标志。 此值可以为零或以下值。
对于 NCRYPT_SECURITY_DESCR_PROPERTY 属性,此参数还必须包含以下值之一,该值标识要检索的安全描述符的一部分。
值 | 含义 |
---|---|
|
检索对象所有者 (SID) 的安全标识符。 使用 GetSecurityDescriptorOwner 函数从 SECURITY_DESCRIPTOR 结构获取所有者 SID。 |
|
检索对象的主组的 SID。 使用 GetSecurityDescriptorGroup 函数从 SECURITY_DESCRIPTOR 结构获取组 SID。 |
|
检索 DACL) (任意访问控制列表。 使用 GetSecurityDescriptorSacl 函数从 SECURITY_DESCRIPTOR 结构获取 DACL。 |
|
(SACL) 检索系统访问控制列表。 使用 GetSecurityDescriptorDacl 函数从 SECURITY_DESCRIPTOR 结构获取 SACL。 |
返回值
返回指示函数成功或失败的状态代码。
可能的返回代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
ERROR_SUCCESS |
函数成功。 |
NTE_BAD_FLAGS |
参数 dwFlags 包含无效的值。 |
NTE_INVALID_HANDLE |
hObject 参数无效。 |
NTE_INVALID_PARAMETER |
一个或多个参数无效。 |
NTE_NO_MEMORY |
内存分配失败。 |
NTE_NOT_SUPPORTED |
对象不支持指定的 属性。 |
注解
服务不得从其 StartService 函数调用此函数。 如果服务从其 StartService
函数调用此函数,则可能会出现死锁,并且该服务可能会停止响应。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | ncrypt.h |
Library | Ncrypt.lib |
DLL | Ncrypt.dll |