Windows API 提供用于获取和设置与安全对象关联的 安全描述符 组件的功能。 使用 GetSecurityInfo 和 GetNamedSecurityInfo 函数检索指向对象安全描述符的指针。 这些函数还可以检索指向安全描述符的各个组件的指针:DACL、SACL、所有者 SID 和主组 SID。 使用 SetSecurityInfo 和 SetNamedSecurityInfo 函数设置对象的安全描述符的组件。
一般情况下,应使用 GetSecurityInfo 和 SetSecurityInfo 句柄标识的对象,SetNamedSecurityInfo,并使用名称标识的对象 GetNamedSecurityInfo。 有关处理各种类型的对象时要使用的特定函数的详细信息,请参阅 安全对象。
Windows API 提供了用于作安全描述符组件的其他功能。 有关使用访问控制列表(DACL 或 SCL)的信息,请参阅 从 ACL 获取信息,并 创建或修改 ACL。 有关 SID 的信息,请参阅 安全标识符(SID)。
若要获取安全描述符中的控制信息,请调用 GetSecurityDescriptorControl 函数。 若要设置与自动 ACE 继承相关的控制位,请调用 SetSecurityDescriptorControl 函数。 其他控制位由设置安全描述符组件的各种函数设置。 例如,如果使用 SetSecurityInfo 更改对象的 DACL,函数会根据需要设置或清除位,以指示安全描述符是否具有 DACL、它是否为默认 DACL 等。 另一个示例是安全描述符中包含的 资源管理器(RM)控制位。 这些位根据资源管理器的实现使用,并通过 GetSecurityDescriptorRMControl 和 SetSecurityDescriptorRMControl 函数进行访问。