Function winsafe::AllocateAndInitializeSid

source ·
pub fn AllocateAndInitializeSid(
    identifier_authority: &SID_IDENTIFIER_AUTHORITY,
    sub_authorities: &[RID]
) -> SysResult<FreeSidGuard>
Available on crate feature kernel only.
Expand description

AllocateAndInitializeSid function.

§Panics

Panics if sub_authorities has more than 8 elements.

§Examples

Create a well-known SID for the Everyone group:

use winsafe::{self as w, prelude::*, co};

let sid_everyone = w::AllocateAndInitializeSid(
    &w::SID_IDENTIFIER_AUTHORITY::WORLD,
    &[
        co::RID::SECURITY_WORLD,
    ],
)?;

// FreeSid() automatically called

Create a SID for the BUILTIN\Administrators group:

use winsafe::{self as w, prelude::*, co};

let sid_builtin_administrators = w::AllocateAndInitializeSid(
    &w::SID_IDENTIFIER_AUTHORITY::NT,
    &[
        co::RID::SECURITY_BUILTIN_DOMAIN,
        co::RID::DOMAIN_ALIAS_ADMINS,
    ],
)?;

// FreeSid() automatically called