[AD RMS SDK 利用由 公开的功能
Msdrm.dll 中的客户端可用于 Windows Server 2008、Windows Vista、Windows Server 2008 R2、Windows 7、Windows Server 2012 和 Windows 8。 它可能被更改,或者
在后续版本中不可用。 请改用 Active Directory Rights Management Services SDK 2.1,
它利用客户端在 Msipc.dll.] 中公开的功能。
DRMCreateRight 函数创建一个 XrML 权限,该权限将定义授予用户或组的权限。
语法
DRMEXPORT HRESULT UDAPICALL DRMCreateRight(
[in] PWSTR wszRightName,
[in] SYSTEMTIME *pstFrom,
[in] SYSTEMTIME *pstUntil,
[in] UINT cExtendedInfo,
[in] PWSTR *pwszExtendedInfoName,
[in] PWSTR *pwszExtendedInfoValue,
[out] DRMPUBHANDLE *phRight
);
parameters
[in] wszRightName
指向以 null 结尾的 Unicode 字符串的指针,该字符串包含用户定义的或标准 XrML (版本 1.2 的名称) 右侧。 有关详细信息,请参阅 官方模板 XrML。
[in] pstFrom
指向 SYSTEMTIME 结构的指针,该结构包含此权限将变为有效的时间(以 UTC 时间为单位)。 有关详细信息,请参阅“备注”。 必须同时指定 pstFrom 和 pstUntil ,或者两者都必须为 NULL。
[in] pstUntil
指向 SYSTEMTIME 结构的指针,该结构包含此权限将过期的时间(以 UTC 时间为单位)。 有关详细信息,请参阅“备注”。 必须同时指定 pstFrom 和 pstUntil ,或者两者都必须为 NULL。
[in] cExtendedInfo
pwszExtendedInfoName 和 pwszExtendedInfoValue 数组中的元素数。 如果此参数为零,则 pwszExtendedInfoName 和 pwszExtendedInfoValue 参数必须为 NULL。
[in] pwszExtendedInfoName
一个以 null 结尾的 Unicode 字符串指针的数组,其中包含扩展信息数据的名称。 此数组中的每个名称必须是唯一的。 cExtendedInfo 参数包含此数组中的元素数。
[in] pwszExtendedInfoValue
一个以 null 结尾的 Unicode 字符串指针的数组,其中包含扩展信息项的值。 cExtendedInfo 参数包含此数组中的元素数。
[out] phRight
指向接收所创建权限句柄的句柄的指针。 此句柄可以与 DRMAddRightWithUser 函数一起使用,以将权限绑定到用户。 调用 DRMClosePubHandle 以关闭句柄。
返回值
如果函数成功,该函数将返回S_OK。
如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括但不限于以下列表中的值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
注解
应用程序负责确定可以向用户授予哪些权限。 Active Directory Rights Management Services 强制实施的唯一权利是 EDIT,它授予用户修改内容的权限。
权限可以具有可以用 XML 有效表示的任何名称。
pstFrom 和 pstUntil 参数指定右侧的开始和结束有效期。 必须同时指定这两个参数,或者两者均为 NULL。 应用程序不能只设置一个有效期。
创建有效期较短的许可证时可能出现的一个问题是时钟偏差问题。 时钟倾斜 是发布计算机的时钟与最终用户的计算机时钟不完全对齐时。 时钟倾斜可能会导致尝试行使权限失败。 有关详细信息,请参阅 时钟倾斜。
pwszExtendedInfoName 和 pwszExtendedInfoValue 参数是指向两个并行数组的指针,这些数组关联包含其他特定于右侧的信息的名称-值对。 这些名称-值对可以指定所需的任何其他信息,并且使用 DRMGetRightExtendedInfo 按索引号检索它们。 扩展信息项是可选的,但如果提供了名称或值,则其他数组中的相应项不能为 NULL。
调用 DRMClosePubHandle 以关闭通过调用此函数创建的右侧的句柄。
要求
| 目标平台 | Windows |
| 标头 | msdrm.h |
| Library | Msdrm.lib |
| DLL | Msdrm.dll |