zigwin32/win32/security.zig

2763 lines
108 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (26)
//--------------------------------------------------------------------------------
pub const wszCERTENROLLSHAREPATH = "CertSrv\\CertEnroll";
pub const cwcHRESULTSTRING = @as(u32, 40);
pub const szLBRACE = "{";
pub const szRBRACE = "}";
pub const wszLBRACE = "{";
pub const wszRBRACE = "}";
pub const szLPAREN = "(";
pub const szRPAREN = ")";
pub const wszLPAREN = "(";
pub const wszRPAREN = ")";
pub const CVT_SECONDS = @as(u32, 1);
pub const cwcFILENAMESUFFIXMAX = @as(u32, 20);
pub const wszFCSAPARM_SERVERDNSNAME = "%1";
pub const wszFCSAPARM_SERVERSHORTNAME = "%2";
pub const wszFCSAPARM_SANITIZEDCANAME = "%3";
pub const wszFCSAPARM_CERTFILENAMESUFFIX = "%4";
pub const wszFCSAPARM_DOMAINDN = "%5";
pub const wszFCSAPARM_CONFIGDN = "%6";
pub const wszFCSAPARM_SANITIZEDCANAMEHASH = "%7";
pub const wszFCSAPARM_CRLFILENAMESUFFIX = "%8";
pub const wszFCSAPARM_CRLDELTAFILENAMESUFFIX = "%9";
pub const wszFCSAPARM_DSCRLATTRIBUTE = "%10";
pub const wszFCSAPARM_DSCACERTATTRIBUTE = "%11";
pub const wszFCSAPARM_DSUSERCERTATTRIBUTE = "%12";
pub const wszFCSAPARM_DSKRACERTATTRIBUTE = "%13";
pub const wszFCSAPARM_DSCROSSCERTPAIRATTRIBUTE = "%14";
//--------------------------------------------------------------------------------
// Section: Types (106)
//--------------------------------------------------------------------------------
pub const TOKEN_PRIVILEGES_ATTRIBUTES = enum(u32) {
ENABLED = 2,
ENABLED_BY_DEFAULT = 1,
REMOVED = 4,
USED_FOR_ACCESS = 2147483648,
_,
pub fn initFlags(o: struct {
ENABLED: u1 = 0,
ENABLED_BY_DEFAULT: u1 = 0,
REMOVED: u1 = 0,
USED_FOR_ACCESS: u1 = 0,
}) TOKEN_PRIVILEGES_ATTRIBUTES {
return @as(TOKEN_PRIVILEGES_ATTRIBUTES, @enumFromInt(
(if (o.ENABLED == 1) @intFromEnum(TOKEN_PRIVILEGES_ATTRIBUTES.ENABLED) else 0)
| (if (o.ENABLED_BY_DEFAULT == 1) @intFromEnum(TOKEN_PRIVILEGES_ATTRIBUTES.ENABLED_BY_DEFAULT) else 0)
| (if (o.REMOVED == 1) @intFromEnum(TOKEN_PRIVILEGES_ATTRIBUTES.REMOVED) else 0)
| (if (o.USED_FOR_ACCESS == 1) @intFromEnum(TOKEN_PRIVILEGES_ATTRIBUTES.USED_FOR_ACCESS) else 0)
));
}
};
pub const SE_PRIVILEGE_ENABLED = TOKEN_PRIVILEGES_ATTRIBUTES.ENABLED;
pub const SE_PRIVILEGE_ENABLED_BY_DEFAULT = TOKEN_PRIVILEGES_ATTRIBUTES.ENABLED_BY_DEFAULT;
pub const SE_PRIVILEGE_REMOVED = TOKEN_PRIVILEGES_ATTRIBUTES.REMOVED;
pub const SE_PRIVILEGE_USED_FOR_ACCESS = TOKEN_PRIVILEGES_ATTRIBUTES.USED_FOR_ACCESS;
pub const LOGON32_PROVIDER = enum(u32) {
DEFAULT = 0,
WINNT50 = 3,
WINNT40 = 2,
};
pub const LOGON32_PROVIDER_DEFAULT = LOGON32_PROVIDER.DEFAULT;
pub const LOGON32_PROVIDER_WINNT50 = LOGON32_PROVIDER.WINNT50;
pub const LOGON32_PROVIDER_WINNT40 = LOGON32_PROVIDER.WINNT40;
pub const CREATE_RESTRICTED_TOKEN_FLAGS = enum(u32) {
DISABLE_MAX_PRIVILEGE = 1,
SANDBOX_INERT = 2,
LUA_TOKEN = 4,
WRITE_RESTRICTED = 8,
_,
pub fn initFlags(o: struct {
DISABLE_MAX_PRIVILEGE: u1 = 0,
SANDBOX_INERT: u1 = 0,
LUA_TOKEN: u1 = 0,
WRITE_RESTRICTED: u1 = 0,
}) CREATE_RESTRICTED_TOKEN_FLAGS {
return @as(CREATE_RESTRICTED_TOKEN_FLAGS, @enumFromInt(
(if (o.DISABLE_MAX_PRIVILEGE == 1) @intFromEnum(CREATE_RESTRICTED_TOKEN_FLAGS.DISABLE_MAX_PRIVILEGE) else 0)
| (if (o.SANDBOX_INERT == 1) @intFromEnum(CREATE_RESTRICTED_TOKEN_FLAGS.SANDBOX_INERT) else 0)
| (if (o.LUA_TOKEN == 1) @intFromEnum(CREATE_RESTRICTED_TOKEN_FLAGS.LUA_TOKEN) else 0)
| (if (o.WRITE_RESTRICTED == 1) @intFromEnum(CREATE_RESTRICTED_TOKEN_FLAGS.WRITE_RESTRICTED) else 0)
));
}
};
pub const DISABLE_MAX_PRIVILEGE = CREATE_RESTRICTED_TOKEN_FLAGS.DISABLE_MAX_PRIVILEGE;
pub const SANDBOX_INERT = CREATE_RESTRICTED_TOKEN_FLAGS.SANDBOX_INERT;
pub const LUA_TOKEN = CREATE_RESTRICTED_TOKEN_FLAGS.LUA_TOKEN;
pub const WRITE_RESTRICTED = CREATE_RESTRICTED_TOKEN_FLAGS.WRITE_RESTRICTED;
pub const LOGON32_LOGON = enum(u32) {
BATCH = 4,
INTERACTIVE = 2,
NETWORK = 3,
NETWORK_CLEARTEXT = 8,
NEW_CREDENTIALS = 9,
SERVICE = 5,
UNLOCK = 7,
};
pub const LOGON32_LOGON_BATCH = LOGON32_LOGON.BATCH;
pub const LOGON32_LOGON_INTERACTIVE = LOGON32_LOGON.INTERACTIVE;
pub const LOGON32_LOGON_NETWORK = LOGON32_LOGON.NETWORK;
pub const LOGON32_LOGON_NETWORK_CLEARTEXT = LOGON32_LOGON.NETWORK_CLEARTEXT;
pub const LOGON32_LOGON_NEW_CREDENTIALS = LOGON32_LOGON.NEW_CREDENTIALS;
pub const LOGON32_LOGON_SERVICE = LOGON32_LOGON.SERVICE;
pub const LOGON32_LOGON_UNLOCK = LOGON32_LOGON.UNLOCK;
pub const ACE_FLAGS = enum(u32) {
CONTAINER_INHERIT_ACE = 2,
FAILED_ACCESS_ACE_FLAG = 128,
INHERIT_ONLY_ACE = 8,
INHERITED_ACE = 16,
NO_PROPAGATE_INHERIT_ACE = 4,
OBJECT_INHERIT_ACE = 1,
SUCCESSFUL_ACCESS_ACE_FLAG = 64,
SUB_CONTAINERS_AND_OBJECTS_INHERIT = 3,
// SUB_CONTAINERS_ONLY_INHERIT = 2, this enum value conflicts with CONTAINER_INHERIT_ACE
// SUB_OBJECTS_ONLY_INHERIT = 1, this enum value conflicts with OBJECT_INHERIT_ACE
// INHERIT_NO_PROPAGATE = 4, this enum value conflicts with NO_PROPAGATE_INHERIT_ACE
// INHERIT_ONLY = 8, this enum value conflicts with INHERIT_ONLY_ACE
NO_INHERITANCE = 0,
// INHERIT_ONLY_ACE_ = 8, this enum value conflicts with INHERIT_ONLY_ACE
_,
pub fn initFlags(o: struct {
CONTAINER_INHERIT_ACE: u1 = 0,
FAILED_ACCESS_ACE_FLAG: u1 = 0,
INHERIT_ONLY_ACE: u1 = 0,
INHERITED_ACE: u1 = 0,
NO_PROPAGATE_INHERIT_ACE: u1 = 0,
OBJECT_INHERIT_ACE: u1 = 0,
SUCCESSFUL_ACCESS_ACE_FLAG: u1 = 0,
SUB_CONTAINERS_AND_OBJECTS_INHERIT: u1 = 0,
NO_INHERITANCE: u1 = 0,
}) ACE_FLAGS {
return @as(ACE_FLAGS, @enumFromInt(
(if (o.CONTAINER_INHERIT_ACE == 1) @intFromEnum(ACE_FLAGS.CONTAINER_INHERIT_ACE) else 0)
| (if (o.FAILED_ACCESS_ACE_FLAG == 1) @intFromEnum(ACE_FLAGS.FAILED_ACCESS_ACE_FLAG) else 0)
| (if (o.INHERIT_ONLY_ACE == 1) @intFromEnum(ACE_FLAGS.INHERIT_ONLY_ACE) else 0)
| (if (o.INHERITED_ACE == 1) @intFromEnum(ACE_FLAGS.INHERITED_ACE) else 0)
| (if (o.NO_PROPAGATE_INHERIT_ACE == 1) @intFromEnum(ACE_FLAGS.NO_PROPAGATE_INHERIT_ACE) else 0)
| (if (o.OBJECT_INHERIT_ACE == 1) @intFromEnum(ACE_FLAGS.OBJECT_INHERIT_ACE) else 0)
| (if (o.SUCCESSFUL_ACCESS_ACE_FLAG == 1) @intFromEnum(ACE_FLAGS.SUCCESSFUL_ACCESS_ACE_FLAG) else 0)
| (if (o.SUB_CONTAINERS_AND_OBJECTS_INHERIT == 1) @intFromEnum(ACE_FLAGS.SUB_CONTAINERS_AND_OBJECTS_INHERIT) else 0)
| (if (o.NO_INHERITANCE == 1) @intFromEnum(ACE_FLAGS.NO_INHERITANCE) else 0)
));
}
};
pub const CONTAINER_INHERIT_ACE = ACE_FLAGS.CONTAINER_INHERIT_ACE;
pub const FAILED_ACCESS_ACE_FLAG = ACE_FLAGS.FAILED_ACCESS_ACE_FLAG;
pub const INHERIT_ONLY_ACE = ACE_FLAGS.INHERIT_ONLY_ACE;
pub const INHERITED_ACE = ACE_FLAGS.INHERITED_ACE;
pub const NO_PROPAGATE_INHERIT_ACE = ACE_FLAGS.NO_PROPAGATE_INHERIT_ACE;
pub const OBJECT_INHERIT_ACE = ACE_FLAGS.OBJECT_INHERIT_ACE;
pub const SUCCESSFUL_ACCESS_ACE_FLAG = ACE_FLAGS.SUCCESSFUL_ACCESS_ACE_FLAG;
pub const SUB_CONTAINERS_AND_OBJECTS_INHERIT = ACE_FLAGS.SUB_CONTAINERS_AND_OBJECTS_INHERIT;
pub const SUB_CONTAINERS_ONLY_INHERIT = ACE_FLAGS.CONTAINER_INHERIT_ACE;
pub const SUB_OBJECTS_ONLY_INHERIT = ACE_FLAGS.OBJECT_INHERIT_ACE;
pub const INHERIT_NO_PROPAGATE = ACE_FLAGS.NO_PROPAGATE_INHERIT_ACE;
pub const INHERIT_ONLY = ACE_FLAGS.INHERIT_ONLY_ACE;
pub const NO_INHERITANCE = ACE_FLAGS.NO_INHERITANCE;
pub const INHERIT_ONLY_ACE_ = ACE_FLAGS.INHERIT_ONLY_ACE;
pub const OBJECT_SECURITY_INFORMATION = enum(u32) {
ATTRIBUTE_SECURITY_INFORMATION = 32,
BACKUP_SECURITY_INFORMATION = 65536,
DACL_SECURITY_INFORMATION = 4,
GROUP_SECURITY_INFORMATION = 2,
LABEL_SECURITY_INFORMATION = 16,
OWNER_SECURITY_INFORMATION = 1,
PROTECTED_DACL_SECURITY_INFORMATION = 2147483648,
PROTECTED_SACL_SECURITY_INFORMATION = 1073741824,
SACL_SECURITY_INFORMATION = 8,
SCOPE_SECURITY_INFORMATION = 64,
UNPROTECTED_DACL_SECURITY_INFORMATION = 536870912,
UNPROTECTED_SACL_SECURITY_INFORMATION = 268435456,
_,
pub fn initFlags(o: struct {
ATTRIBUTE_SECURITY_INFORMATION: u1 = 0,
BACKUP_SECURITY_INFORMATION: u1 = 0,
DACL_SECURITY_INFORMATION: u1 = 0,
GROUP_SECURITY_INFORMATION: u1 = 0,
LABEL_SECURITY_INFORMATION: u1 = 0,
OWNER_SECURITY_INFORMATION: u1 = 0,
PROTECTED_DACL_SECURITY_INFORMATION: u1 = 0,
PROTECTED_SACL_SECURITY_INFORMATION: u1 = 0,
SACL_SECURITY_INFORMATION: u1 = 0,
SCOPE_SECURITY_INFORMATION: u1 = 0,
UNPROTECTED_DACL_SECURITY_INFORMATION: u1 = 0,
UNPROTECTED_SACL_SECURITY_INFORMATION: u1 = 0,
}) OBJECT_SECURITY_INFORMATION {
return @as(OBJECT_SECURITY_INFORMATION, @enumFromInt(
(if (o.ATTRIBUTE_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.ATTRIBUTE_SECURITY_INFORMATION) else 0)
| (if (o.BACKUP_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.BACKUP_SECURITY_INFORMATION) else 0)
| (if (o.DACL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.DACL_SECURITY_INFORMATION) else 0)
| (if (o.GROUP_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.GROUP_SECURITY_INFORMATION) else 0)
| (if (o.LABEL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.LABEL_SECURITY_INFORMATION) else 0)
| (if (o.OWNER_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.OWNER_SECURITY_INFORMATION) else 0)
| (if (o.PROTECTED_DACL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.PROTECTED_DACL_SECURITY_INFORMATION) else 0)
| (if (o.PROTECTED_SACL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.PROTECTED_SACL_SECURITY_INFORMATION) else 0)
| (if (o.SACL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.SACL_SECURITY_INFORMATION) else 0)
| (if (o.SCOPE_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.SCOPE_SECURITY_INFORMATION) else 0)
| (if (o.UNPROTECTED_DACL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.UNPROTECTED_DACL_SECURITY_INFORMATION) else 0)
| (if (o.UNPROTECTED_SACL_SECURITY_INFORMATION == 1) @intFromEnum(OBJECT_SECURITY_INFORMATION.UNPROTECTED_SACL_SECURITY_INFORMATION) else 0)
));
}
};
pub const ATTRIBUTE_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.ATTRIBUTE_SECURITY_INFORMATION;
pub const BACKUP_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.BACKUP_SECURITY_INFORMATION;
pub const DACL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.DACL_SECURITY_INFORMATION;
pub const GROUP_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.GROUP_SECURITY_INFORMATION;
pub const LABEL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.LABEL_SECURITY_INFORMATION;
pub const OWNER_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.OWNER_SECURITY_INFORMATION;
pub const PROTECTED_DACL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.PROTECTED_DACL_SECURITY_INFORMATION;
pub const PROTECTED_SACL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.PROTECTED_SACL_SECURITY_INFORMATION;
pub const SACL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.SACL_SECURITY_INFORMATION;
pub const SCOPE_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.SCOPE_SECURITY_INFORMATION;
pub const UNPROTECTED_DACL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.UNPROTECTED_DACL_SECURITY_INFORMATION;
pub const UNPROTECTED_SACL_SECURITY_INFORMATION = OBJECT_SECURITY_INFORMATION.UNPROTECTED_SACL_SECURITY_INFORMATION;
pub const SECURITY_AUTO_INHERIT_FLAGS = enum(u32) {
AVOID_OWNER_CHECK = 16,
AVOID_OWNER_RESTRICTION = 4096,
AVOID_PRIVILEGE_CHECK = 8,
DACL_AUTO_INHERIT = 1,
DEFAULT_DESCRIPTOR_FOR_OBJECT = 4,
DEFAULT_GROUP_FROM_PARENT = 64,
DEFAULT_OWNER_FROM_PARENT = 32,
MACL_NO_EXECUTE_UP = 1024,
MACL_NO_READ_UP = 512,
MACL_NO_WRITE_UP = 256,
SACL_AUTO_INHERIT = 2,
_,
pub fn initFlags(o: struct {
AVOID_OWNER_CHECK: u1 = 0,
AVOID_OWNER_RESTRICTION: u1 = 0,
AVOID_PRIVILEGE_CHECK: u1 = 0,
DACL_AUTO_INHERIT: u1 = 0,
DEFAULT_DESCRIPTOR_FOR_OBJECT: u1 = 0,
DEFAULT_GROUP_FROM_PARENT: u1 = 0,
DEFAULT_OWNER_FROM_PARENT: u1 = 0,
MACL_NO_EXECUTE_UP: u1 = 0,
MACL_NO_READ_UP: u1 = 0,
MACL_NO_WRITE_UP: u1 = 0,
SACL_AUTO_INHERIT: u1 = 0,
}) SECURITY_AUTO_INHERIT_FLAGS {
return @as(SECURITY_AUTO_INHERIT_FLAGS, @enumFromInt(
(if (o.AVOID_OWNER_CHECK == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.AVOID_OWNER_CHECK) else 0)
| (if (o.AVOID_OWNER_RESTRICTION == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.AVOID_OWNER_RESTRICTION) else 0)
| (if (o.AVOID_PRIVILEGE_CHECK == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.AVOID_PRIVILEGE_CHECK) else 0)
| (if (o.DACL_AUTO_INHERIT == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.DACL_AUTO_INHERIT) else 0)
| (if (o.DEFAULT_DESCRIPTOR_FOR_OBJECT == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.DEFAULT_DESCRIPTOR_FOR_OBJECT) else 0)
| (if (o.DEFAULT_GROUP_FROM_PARENT == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.DEFAULT_GROUP_FROM_PARENT) else 0)
| (if (o.DEFAULT_OWNER_FROM_PARENT == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.DEFAULT_OWNER_FROM_PARENT) else 0)
| (if (o.MACL_NO_EXECUTE_UP == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.MACL_NO_EXECUTE_UP) else 0)
| (if (o.MACL_NO_READ_UP == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.MACL_NO_READ_UP) else 0)
| (if (o.MACL_NO_WRITE_UP == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.MACL_NO_WRITE_UP) else 0)
| (if (o.SACL_AUTO_INHERIT == 1) @intFromEnum(SECURITY_AUTO_INHERIT_FLAGS.SACL_AUTO_INHERIT) else 0)
));
}
};
pub const SEF_AVOID_OWNER_CHECK = SECURITY_AUTO_INHERIT_FLAGS.AVOID_OWNER_CHECK;
pub const SEF_AVOID_OWNER_RESTRICTION = SECURITY_AUTO_INHERIT_FLAGS.AVOID_OWNER_RESTRICTION;
pub const SEF_AVOID_PRIVILEGE_CHECK = SECURITY_AUTO_INHERIT_FLAGS.AVOID_PRIVILEGE_CHECK;
pub const SEF_DACL_AUTO_INHERIT = SECURITY_AUTO_INHERIT_FLAGS.DACL_AUTO_INHERIT;
pub const SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = SECURITY_AUTO_INHERIT_FLAGS.DEFAULT_DESCRIPTOR_FOR_OBJECT;
pub const SEF_DEFAULT_GROUP_FROM_PARENT = SECURITY_AUTO_INHERIT_FLAGS.DEFAULT_GROUP_FROM_PARENT;
pub const SEF_DEFAULT_OWNER_FROM_PARENT = SECURITY_AUTO_INHERIT_FLAGS.DEFAULT_OWNER_FROM_PARENT;
pub const SEF_MACL_NO_EXECUTE_UP = SECURITY_AUTO_INHERIT_FLAGS.MACL_NO_EXECUTE_UP;
pub const SEF_MACL_NO_READ_UP = SECURITY_AUTO_INHERIT_FLAGS.MACL_NO_READ_UP;
pub const SEF_MACL_NO_WRITE_UP = SECURITY_AUTO_INHERIT_FLAGS.MACL_NO_WRITE_UP;
pub const SEF_SACL_AUTO_INHERIT = SECURITY_AUTO_INHERIT_FLAGS.SACL_AUTO_INHERIT;
pub const ACE_REVISION = enum(u32) {
N = 2,
_DS = 4,
};
pub const ACL_REVISION = ACE_REVISION.N;
pub const ACL_REVISION_DS = ACE_REVISION._DS;
pub const TOKEN_MANDATORY_POLICY_ID = enum(u32) {
OFF = 0,
NO_WRITE_UP = 1,
NEW_PROCESS_MIN = 2,
VALID_MASK = 3,
};
pub const TOKEN_MANDATORY_POLICY_OFF = TOKEN_MANDATORY_POLICY_ID.OFF;
pub const TOKEN_MANDATORY_POLICY_NO_WRITE_UP = TOKEN_MANDATORY_POLICY_ID.NO_WRITE_UP;
pub const TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN = TOKEN_MANDATORY_POLICY_ID.NEW_PROCESS_MIN;
pub const TOKEN_MANDATORY_POLICY_VALID_MASK = TOKEN_MANDATORY_POLICY_ID.VALID_MASK;
pub const SYSTEM_AUDIT_OBJECT_ACE_FLAGS = enum(u32) {
OBJECT_TYPE_PRESENT = 1,
INHERITED_OBJECT_TYPE_PRESENT = 2,
_,
pub fn initFlags(o: struct {
OBJECT_TYPE_PRESENT: u1 = 0,
INHERITED_OBJECT_TYPE_PRESENT: u1 = 0,
}) SYSTEM_AUDIT_OBJECT_ACE_FLAGS {
return @as(SYSTEM_AUDIT_OBJECT_ACE_FLAGS, @enumFromInt(
(if (o.OBJECT_TYPE_PRESENT == 1) @intFromEnum(SYSTEM_AUDIT_OBJECT_ACE_FLAGS.OBJECT_TYPE_PRESENT) else 0)
| (if (o.INHERITED_OBJECT_TYPE_PRESENT == 1) @intFromEnum(SYSTEM_AUDIT_OBJECT_ACE_FLAGS.INHERITED_OBJECT_TYPE_PRESENT) else 0)
));
}
};
pub const ACE_OBJECT_TYPE_PRESENT = SYSTEM_AUDIT_OBJECT_ACE_FLAGS.OBJECT_TYPE_PRESENT;
pub const ACE_INHERITED_OBJECT_TYPE_PRESENT = SYSTEM_AUDIT_OBJECT_ACE_FLAGS.INHERITED_OBJECT_TYPE_PRESENT;
pub const CLAIM_SECURITY_ATTRIBUTE_FLAGS = enum(u32) {
NON_INHERITABLE = 1,
VALUE_CASE_SENSITIVE = 2,
USE_FOR_DENY_ONLY = 4,
DISABLED_BY_DEFAULT = 8,
DISABLED = 16,
MANDATORY = 32,
_,
pub fn initFlags(o: struct {
NON_INHERITABLE: u1 = 0,
VALUE_CASE_SENSITIVE: u1 = 0,
USE_FOR_DENY_ONLY: u1 = 0,
DISABLED_BY_DEFAULT: u1 = 0,
DISABLED: u1 = 0,
MANDATORY: u1 = 0,
}) CLAIM_SECURITY_ATTRIBUTE_FLAGS {
return @as(CLAIM_SECURITY_ATTRIBUTE_FLAGS, @enumFromInt(
(if (o.NON_INHERITABLE == 1) @intFromEnum(CLAIM_SECURITY_ATTRIBUTE_FLAGS.NON_INHERITABLE) else 0)
| (if (o.VALUE_CASE_SENSITIVE == 1) @intFromEnum(CLAIM_SECURITY_ATTRIBUTE_FLAGS.VALUE_CASE_SENSITIVE) else 0)
| (if (o.USE_FOR_DENY_ONLY == 1) @intFromEnum(CLAIM_SECURITY_ATTRIBUTE_FLAGS.USE_FOR_DENY_ONLY) else 0)
| (if (o.DISABLED_BY_DEFAULT == 1) @intFromEnum(CLAIM_SECURITY_ATTRIBUTE_FLAGS.DISABLED_BY_DEFAULT) else 0)
| (if (o.DISABLED == 1) @intFromEnum(CLAIM_SECURITY_ATTRIBUTE_FLAGS.DISABLED) else 0)
| (if (o.MANDATORY == 1) @intFromEnum(CLAIM_SECURITY_ATTRIBUTE_FLAGS.MANDATORY) else 0)
));
}
};
pub const CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE = CLAIM_SECURITY_ATTRIBUTE_FLAGS.NON_INHERITABLE;
pub const CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE = CLAIM_SECURITY_ATTRIBUTE_FLAGS.VALUE_CASE_SENSITIVE;
pub const CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY = CLAIM_SECURITY_ATTRIBUTE_FLAGS.USE_FOR_DENY_ONLY;
pub const CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT = CLAIM_SECURITY_ATTRIBUTE_FLAGS.DISABLED_BY_DEFAULT;
pub const CLAIM_SECURITY_ATTRIBUTE_DISABLED = CLAIM_SECURITY_ATTRIBUTE_FLAGS.DISABLED;
pub const CLAIM_SECURITY_ATTRIBUTE_MANDATORY = CLAIM_SECURITY_ATTRIBUTE_FLAGS.MANDATORY;
pub const CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE = enum(u16) {
INT64 = 1,
UINT64 = 2,
STRING = 3,
OCTET_STRING = 16,
FQBN = 4,
SID = 5,
BOOLEAN = 6,
};
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_INT64 = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.INT64;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_UINT64 = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.UINT64;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_STRING = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.STRING;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.OCTET_STRING;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_FQBN = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.FQBN;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_SID = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.SID;
pub const CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN = CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE.BOOLEAN;
pub const PLSA_AP_CALL_PACKAGE_UNTRUSTED = switch (@import("builtin").zig_backend) {
.stage1 => fn(
ClientRequest: ?*?*anyopaque,
// TODO: what to do with BytesParamIndex 3?
ProtocolSubmitBuffer: ?*anyopaque,
ClientBufferBase: ?*anyopaque,
SubmitBufferLength: u32,
ProtocolReturnBuffer: ?*?*anyopaque,
ReturnBufferLength: ?*u32,
ProtocolStatus: ?*i32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS,
else => *const fn(
ClientRequest: ?*?*anyopaque,
// TODO: what to do with BytesParamIndex 3?
ProtocolSubmitBuffer: ?*anyopaque,
ClientBufferBase: ?*anyopaque,
SubmitBufferLength: u32,
ProtocolReturnBuffer: ?*?*anyopaque,
ReturnBufferLength: ?*u32,
ProtocolStatus: ?*i32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS,
} ;
pub const SEC_THREAD_START = switch (@import("builtin").zig_backend) {
.stage1 => fn(
lpThreadParameter: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
lpThreadParameter: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
} ;
pub const TOKEN_ACCESS_MASK = enum(u32) {
DELETE = 65536,
READ_CONTROL = 131072,
WRITE_DAC = 262144,
WRITE_OWNER = 524288,
ACCESS_SYSTEM_SECURITY = 16777216,
ASSIGN_PRIMARY = 1,
DUPLICATE = 2,
IMPERSONATE = 4,
QUERY = 8,
QUERY_SOURCE = 16,
ADJUST_PRIVILEGES = 32,
ADJUST_GROUPS = 64,
ADJUST_DEFAULT = 128,
ADJUST_SESSIONID = 256,
ALL_ACCESS = 983295,
_,
pub fn initFlags(o: struct {
DELETE: u1 = 0,
READ_CONTROL: u1 = 0,
WRITE_DAC: u1 = 0,
WRITE_OWNER: u1 = 0,
ACCESS_SYSTEM_SECURITY: u1 = 0,
ASSIGN_PRIMARY: u1 = 0,
DUPLICATE: u1 = 0,
IMPERSONATE: u1 = 0,
QUERY: u1 = 0,
QUERY_SOURCE: u1 = 0,
ADJUST_PRIVILEGES: u1 = 0,
ADJUST_GROUPS: u1 = 0,
ADJUST_DEFAULT: u1 = 0,
ADJUST_SESSIONID: u1 = 0,
ALL_ACCESS: u1 = 0,
}) TOKEN_ACCESS_MASK {
return @as(TOKEN_ACCESS_MASK, @enumFromInt(
(if (o.DELETE == 1) @intFromEnum(TOKEN_ACCESS_MASK.DELETE) else 0)
| (if (o.READ_CONTROL == 1) @intFromEnum(TOKEN_ACCESS_MASK.READ_CONTROL) else 0)
| (if (o.WRITE_DAC == 1) @intFromEnum(TOKEN_ACCESS_MASK.WRITE_DAC) else 0)
| (if (o.WRITE_OWNER == 1) @intFromEnum(TOKEN_ACCESS_MASK.WRITE_OWNER) else 0)
| (if (o.ACCESS_SYSTEM_SECURITY == 1) @intFromEnum(TOKEN_ACCESS_MASK.ACCESS_SYSTEM_SECURITY) else 0)
| (if (o.ASSIGN_PRIMARY == 1) @intFromEnum(TOKEN_ACCESS_MASK.ASSIGN_PRIMARY) else 0)
| (if (o.DUPLICATE == 1) @intFromEnum(TOKEN_ACCESS_MASK.DUPLICATE) else 0)
| (if (o.IMPERSONATE == 1) @intFromEnum(TOKEN_ACCESS_MASK.IMPERSONATE) else 0)
| (if (o.QUERY == 1) @intFromEnum(TOKEN_ACCESS_MASK.QUERY) else 0)
| (if (o.QUERY_SOURCE == 1) @intFromEnum(TOKEN_ACCESS_MASK.QUERY_SOURCE) else 0)
| (if (o.ADJUST_PRIVILEGES == 1) @intFromEnum(TOKEN_ACCESS_MASK.ADJUST_PRIVILEGES) else 0)
| (if (o.ADJUST_GROUPS == 1) @intFromEnum(TOKEN_ACCESS_MASK.ADJUST_GROUPS) else 0)
| (if (o.ADJUST_DEFAULT == 1) @intFromEnum(TOKEN_ACCESS_MASK.ADJUST_DEFAULT) else 0)
| (if (o.ADJUST_SESSIONID == 1) @intFromEnum(TOKEN_ACCESS_MASK.ADJUST_SESSIONID) else 0)
| (if (o.ALL_ACCESS == 1) @intFromEnum(TOKEN_ACCESS_MASK.ALL_ACCESS) else 0)
));
}
};
pub const TOKEN_DELETE = TOKEN_ACCESS_MASK.DELETE;
pub const TOKEN_READ_CONTROL = TOKEN_ACCESS_MASK.READ_CONTROL;
pub const TOKEN_WRITE_DAC = TOKEN_ACCESS_MASK.WRITE_DAC;
pub const TOKEN_WRITE_OWNER = TOKEN_ACCESS_MASK.WRITE_OWNER;
pub const TOKEN_ACCESS_SYSTEM_SECURITY = TOKEN_ACCESS_MASK.ACCESS_SYSTEM_SECURITY;
pub const TOKEN_ASSIGN_PRIMARY = TOKEN_ACCESS_MASK.ASSIGN_PRIMARY;
pub const TOKEN_DUPLICATE = TOKEN_ACCESS_MASK.DUPLICATE;
pub const TOKEN_IMPERSONATE = TOKEN_ACCESS_MASK.IMPERSONATE;
pub const TOKEN_QUERY = TOKEN_ACCESS_MASK.QUERY;
pub const TOKEN_QUERY_SOURCE = TOKEN_ACCESS_MASK.QUERY_SOURCE;
pub const TOKEN_ADJUST_PRIVILEGES = TOKEN_ACCESS_MASK.ADJUST_PRIVILEGES;
pub const TOKEN_ADJUST_GROUPS = TOKEN_ACCESS_MASK.ADJUST_GROUPS;
pub const TOKEN_ADJUST_DEFAULT = TOKEN_ACCESS_MASK.ADJUST_DEFAULT;
pub const TOKEN_ADJUST_SESSIONID = TOKEN_ACCESS_MASK.ADJUST_SESSIONID;
pub const TOKEN_ALL_ACCESS = TOKEN_ACCESS_MASK.ALL_ACCESS;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HDIAGNOSTIC_DATA_QUERY_SESSION = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HDIAGNOSTIC_REPORT = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HDIAGNOSTIC_EVENT_TAG_DESCRIPTION = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HDIAGNOSTIC_EVENT_PRODUCER_DESCRIPTION = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HDIAGNOSTIC_EVENT_CATEGORY_DESCRIPTION = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HDIAGNOSTIC_RECORD = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const NCRYPT_DESCRIPTOR_HANDLE = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const NCRYPT_STREAM_HANDLE = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const SAFER_LEVEL_HANDLE = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const SC_HANDLE = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const PSECURITY_DESCRIPTOR = *anyopaque;
pub const SECURITY_ATTRIBUTES = extern struct {
nLength: u32,
lpSecurityDescriptor: ?*anyopaque,
bInheritHandle: BOOL,
};
pub const ENUM_PERIOD = enum(i32) {
INVALID = -1,
SECONDS = 0,
MINUTES = 1,
HOURS = 2,
DAYS = 3,
WEEKS = 4,
MONTHS = 5,
YEARS = 6,
};
pub const ENUM_PERIOD_INVALID = ENUM_PERIOD.INVALID;
pub const ENUM_PERIOD_SECONDS = ENUM_PERIOD.SECONDS;
pub const ENUM_PERIOD_MINUTES = ENUM_PERIOD.MINUTES;
pub const ENUM_PERIOD_HOURS = ENUM_PERIOD.HOURS;
pub const ENUM_PERIOD_DAYS = ENUM_PERIOD.DAYS;
pub const ENUM_PERIOD_WEEKS = ENUM_PERIOD.WEEKS;
pub const ENUM_PERIOD_MONTHS = ENUM_PERIOD.MONTHS;
pub const ENUM_PERIOD_YEARS = ENUM_PERIOD.YEARS;
pub const LLFILETIME = extern struct {
Anonymous: extern union {
ll: i64,
ft: FILETIME,
},
};
pub const GENERIC_MAPPING = extern struct {
GenericRead: u32,
GenericWrite: u32,
GenericExecute: u32,
GenericAll: u32,
};
pub const LUID_AND_ATTRIBUTES = extern struct {
Luid: LUID,
Attributes: TOKEN_PRIVILEGES_ATTRIBUTES,
};
pub const SID_IDENTIFIER_AUTHORITY = extern struct {
Value: [6]u8,
};
pub const SID = extern struct {
Revision: u8,
SubAuthorityCount: u8,
IdentifierAuthority: SID_IDENTIFIER_AUTHORITY,
SubAuthority: [1]u32,
};
pub const SE_SID = extern union {
Sid: SID,
Buffer: [68]u8,
};
pub const SID_NAME_USE = enum(i32) {
User = 1,
Group = 2,
Domain = 3,
Alias = 4,
WellKnownGroup = 5,
DeletedAccount = 6,
Invalid = 7,
Unknown = 8,
Computer = 9,
Label = 10,
LogonSession = 11,
};
pub const SidTypeUser = SID_NAME_USE.User;
pub const SidTypeGroup = SID_NAME_USE.Group;
pub const SidTypeDomain = SID_NAME_USE.Domain;
pub const SidTypeAlias = SID_NAME_USE.Alias;
pub const SidTypeWellKnownGroup = SID_NAME_USE.WellKnownGroup;
pub const SidTypeDeletedAccount = SID_NAME_USE.DeletedAccount;
pub const SidTypeInvalid = SID_NAME_USE.Invalid;
pub const SidTypeUnknown = SID_NAME_USE.Unknown;
pub const SidTypeComputer = SID_NAME_USE.Computer;
pub const SidTypeLabel = SID_NAME_USE.Label;
pub const SidTypeLogonSession = SID_NAME_USE.LogonSession;
pub const SID_AND_ATTRIBUTES = extern struct {
Sid: ?PSID,
Attributes: u32,
};
pub const SID_AND_ATTRIBUTES_HASH = extern struct {
SidCount: u32,
SidAttr: ?*SID_AND_ATTRIBUTES,
Hash: [32]usize,
};
pub const WELL_KNOWN_SID_TYPE = enum(i32) {
NullSid = 0,
WorldSid = 1,
LocalSid = 2,
CreatorOwnerSid = 3,
CreatorGroupSid = 4,
CreatorOwnerServerSid = 5,
CreatorGroupServerSid = 6,
NtAuthoritySid = 7,
DialupSid = 8,
NetworkSid = 9,
BatchSid = 10,
InteractiveSid = 11,
ServiceSid = 12,
AnonymousSid = 13,
ProxySid = 14,
EnterpriseControllersSid = 15,
SelfSid = 16,
AuthenticatedUserSid = 17,
RestrictedCodeSid = 18,
TerminalServerSid = 19,
RemoteLogonIdSid = 20,
LogonIdsSid = 21,
LocalSystemSid = 22,
LocalServiceSid = 23,
NetworkServiceSid = 24,
BuiltinDomainSid = 25,
BuiltinAdministratorsSid = 26,
BuiltinUsersSid = 27,
BuiltinGuestsSid = 28,
BuiltinPowerUsersSid = 29,
BuiltinAccountOperatorsSid = 30,
BuiltinSystemOperatorsSid = 31,
BuiltinPrintOperatorsSid = 32,
BuiltinBackupOperatorsSid = 33,
BuiltinReplicatorSid = 34,
BuiltinPreWindows2000CompatibleAccessSid = 35,
BuiltinRemoteDesktopUsersSid = 36,
BuiltinNetworkConfigurationOperatorsSid = 37,
AccountAdministratorSid = 38,
AccountGuestSid = 39,
AccountKrbtgtSid = 40,
AccountDomainAdminsSid = 41,
AccountDomainUsersSid = 42,
AccountDomainGuestsSid = 43,
AccountComputersSid = 44,
AccountControllersSid = 45,
AccountCertAdminsSid = 46,
AccountSchemaAdminsSid = 47,
AccountEnterpriseAdminsSid = 48,
AccountPolicyAdminsSid = 49,
AccountRasAndIasServersSid = 50,
NTLMAuthenticationSid = 51,
DigestAuthenticationSid = 52,
SChannelAuthenticationSid = 53,
ThisOrganizationSid = 54,
OtherOrganizationSid = 55,
BuiltinIncomingForestTrustBuildersSid = 56,
BuiltinPerfMonitoringUsersSid = 57,
BuiltinPerfLoggingUsersSid = 58,
BuiltinAuthorizationAccessSid = 59,
BuiltinTerminalServerLicenseServersSid = 60,
BuiltinDCOMUsersSid = 61,
BuiltinIUsersSid = 62,
IUserSid = 63,
BuiltinCryptoOperatorsSid = 64,
UntrustedLabelSid = 65,
LowLabelSid = 66,
MediumLabelSid = 67,
HighLabelSid = 68,
SystemLabelSid = 69,
WriteRestrictedCodeSid = 70,
CreatorOwnerRightsSid = 71,
CacheablePrincipalsGroupSid = 72,
NonCacheablePrincipalsGroupSid = 73,
EnterpriseReadonlyControllersSid = 74,
AccountReadonlyControllersSid = 75,
BuiltinEventLogReadersGroup = 76,
NewEnterpriseReadonlyControllersSid = 77,
BuiltinCertSvcDComAccessGroup = 78,
MediumPlusLabelSid = 79,
LocalLogonSid = 80,
ConsoleLogonSid = 81,
ThisOrganizationCertificateSid = 82,
ApplicationPackageAuthoritySid = 83,
BuiltinAnyPackageSid = 84,
CapabilityInternetClientSid = 85,
CapabilityInternetClientServerSid = 86,
CapabilityPrivateNetworkClientServerSid = 87,
CapabilityPicturesLibrarySid = 88,
CapabilityVideosLibrarySid = 89,
CapabilityMusicLibrarySid = 90,
CapabilityDocumentsLibrarySid = 91,
CapabilitySharedUserCertificatesSid = 92,
CapabilityEnterpriseAuthenticationSid = 93,
CapabilityRemovableStorageSid = 94,
BuiltinRDSRemoteAccessServersSid = 95,
BuiltinRDSEndpointServersSid = 96,
BuiltinRDSManagementServersSid = 97,
UserModeDriversSid = 98,
BuiltinHyperVAdminsSid = 99,
AccountCloneableControllersSid = 100,
BuiltinAccessControlAssistanceOperatorsSid = 101,
BuiltinRemoteManagementUsersSid = 102,
AuthenticationAuthorityAssertedSid = 103,
AuthenticationServiceAssertedSid = 104,
LocalAccountSid = 105,
LocalAccountAndAdministratorSid = 106,
AccountProtectedUsersSid = 107,
CapabilityAppointmentsSid = 108,
CapabilityContactsSid = 109,
AccountDefaultSystemManagedSid = 110,
BuiltinDefaultSystemManagedGroupSid = 111,
BuiltinStorageReplicaAdminsSid = 112,
AccountKeyAdminsSid = 113,
AccountEnterpriseKeyAdminsSid = 114,
AuthenticationKeyTrustSid = 115,
AuthenticationKeyPropertyMFASid = 116,
AuthenticationKeyPropertyAttestationSid = 117,
AuthenticationFreshKeyAuthSid = 118,
BuiltinDeviceOwnersSid = 119,
};
pub const WinNullSid = WELL_KNOWN_SID_TYPE.NullSid;
pub const WinWorldSid = WELL_KNOWN_SID_TYPE.WorldSid;
pub const WinLocalSid = WELL_KNOWN_SID_TYPE.LocalSid;
pub const WinCreatorOwnerSid = WELL_KNOWN_SID_TYPE.CreatorOwnerSid;
pub const WinCreatorGroupSid = WELL_KNOWN_SID_TYPE.CreatorGroupSid;
pub const WinCreatorOwnerServerSid = WELL_KNOWN_SID_TYPE.CreatorOwnerServerSid;
pub const WinCreatorGroupServerSid = WELL_KNOWN_SID_TYPE.CreatorGroupServerSid;
pub const WinNtAuthoritySid = WELL_KNOWN_SID_TYPE.NtAuthoritySid;
pub const WinDialupSid = WELL_KNOWN_SID_TYPE.DialupSid;
pub const WinNetworkSid = WELL_KNOWN_SID_TYPE.NetworkSid;
pub const WinBatchSid = WELL_KNOWN_SID_TYPE.BatchSid;
pub const WinInteractiveSid = WELL_KNOWN_SID_TYPE.InteractiveSid;
pub const WinServiceSid = WELL_KNOWN_SID_TYPE.ServiceSid;
pub const WinAnonymousSid = WELL_KNOWN_SID_TYPE.AnonymousSid;
pub const WinProxySid = WELL_KNOWN_SID_TYPE.ProxySid;
pub const WinEnterpriseControllersSid = WELL_KNOWN_SID_TYPE.EnterpriseControllersSid;
pub const WinSelfSid = WELL_KNOWN_SID_TYPE.SelfSid;
pub const WinAuthenticatedUserSid = WELL_KNOWN_SID_TYPE.AuthenticatedUserSid;
pub const WinRestrictedCodeSid = WELL_KNOWN_SID_TYPE.RestrictedCodeSid;
pub const WinTerminalServerSid = WELL_KNOWN_SID_TYPE.TerminalServerSid;
pub const WinRemoteLogonIdSid = WELL_KNOWN_SID_TYPE.RemoteLogonIdSid;
pub const WinLogonIdsSid = WELL_KNOWN_SID_TYPE.LogonIdsSid;
pub const WinLocalSystemSid = WELL_KNOWN_SID_TYPE.LocalSystemSid;
pub const WinLocalServiceSid = WELL_KNOWN_SID_TYPE.LocalServiceSid;
pub const WinNetworkServiceSid = WELL_KNOWN_SID_TYPE.NetworkServiceSid;
pub const WinBuiltinDomainSid = WELL_KNOWN_SID_TYPE.BuiltinDomainSid;
pub const WinBuiltinAdministratorsSid = WELL_KNOWN_SID_TYPE.BuiltinAdministratorsSid;
pub const WinBuiltinUsersSid = WELL_KNOWN_SID_TYPE.BuiltinUsersSid;
pub const WinBuiltinGuestsSid = WELL_KNOWN_SID_TYPE.BuiltinGuestsSid;
pub const WinBuiltinPowerUsersSid = WELL_KNOWN_SID_TYPE.BuiltinPowerUsersSid;
pub const WinBuiltinAccountOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinAccountOperatorsSid;
pub const WinBuiltinSystemOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinSystemOperatorsSid;
pub const WinBuiltinPrintOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinPrintOperatorsSid;
pub const WinBuiltinBackupOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinBackupOperatorsSid;
pub const WinBuiltinReplicatorSid = WELL_KNOWN_SID_TYPE.BuiltinReplicatorSid;
pub const WinBuiltinPreWindows2000CompatibleAccessSid = WELL_KNOWN_SID_TYPE.BuiltinPreWindows2000CompatibleAccessSid;
pub const WinBuiltinRemoteDesktopUsersSid = WELL_KNOWN_SID_TYPE.BuiltinRemoteDesktopUsersSid;
pub const WinBuiltinNetworkConfigurationOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinNetworkConfigurationOperatorsSid;
pub const WinAccountAdministratorSid = WELL_KNOWN_SID_TYPE.AccountAdministratorSid;
pub const WinAccountGuestSid = WELL_KNOWN_SID_TYPE.AccountGuestSid;
pub const WinAccountKrbtgtSid = WELL_KNOWN_SID_TYPE.AccountKrbtgtSid;
pub const WinAccountDomainAdminsSid = WELL_KNOWN_SID_TYPE.AccountDomainAdminsSid;
pub const WinAccountDomainUsersSid = WELL_KNOWN_SID_TYPE.AccountDomainUsersSid;
pub const WinAccountDomainGuestsSid = WELL_KNOWN_SID_TYPE.AccountDomainGuestsSid;
pub const WinAccountComputersSid = WELL_KNOWN_SID_TYPE.AccountComputersSid;
pub const WinAccountControllersSid = WELL_KNOWN_SID_TYPE.AccountControllersSid;
pub const WinAccountCertAdminsSid = WELL_KNOWN_SID_TYPE.AccountCertAdminsSid;
pub const WinAccountSchemaAdminsSid = WELL_KNOWN_SID_TYPE.AccountSchemaAdminsSid;
pub const WinAccountEnterpriseAdminsSid = WELL_KNOWN_SID_TYPE.AccountEnterpriseAdminsSid;
pub const WinAccountPolicyAdminsSid = WELL_KNOWN_SID_TYPE.AccountPolicyAdminsSid;
pub const WinAccountRasAndIasServersSid = WELL_KNOWN_SID_TYPE.AccountRasAndIasServersSid;
pub const WinNTLMAuthenticationSid = WELL_KNOWN_SID_TYPE.NTLMAuthenticationSid;
pub const WinDigestAuthenticationSid = WELL_KNOWN_SID_TYPE.DigestAuthenticationSid;
pub const WinSChannelAuthenticationSid = WELL_KNOWN_SID_TYPE.SChannelAuthenticationSid;
pub const WinThisOrganizationSid = WELL_KNOWN_SID_TYPE.ThisOrganizationSid;
pub const WinOtherOrganizationSid = WELL_KNOWN_SID_TYPE.OtherOrganizationSid;
pub const WinBuiltinIncomingForestTrustBuildersSid = WELL_KNOWN_SID_TYPE.BuiltinIncomingForestTrustBuildersSid;
pub const WinBuiltinPerfMonitoringUsersSid = WELL_KNOWN_SID_TYPE.BuiltinPerfMonitoringUsersSid;
pub const WinBuiltinPerfLoggingUsersSid = WELL_KNOWN_SID_TYPE.BuiltinPerfLoggingUsersSid;
pub const WinBuiltinAuthorizationAccessSid = WELL_KNOWN_SID_TYPE.BuiltinAuthorizationAccessSid;
pub const WinBuiltinTerminalServerLicenseServersSid = WELL_KNOWN_SID_TYPE.BuiltinTerminalServerLicenseServersSid;
pub const WinBuiltinDCOMUsersSid = WELL_KNOWN_SID_TYPE.BuiltinDCOMUsersSid;
pub const WinBuiltinIUsersSid = WELL_KNOWN_SID_TYPE.BuiltinIUsersSid;
pub const WinIUserSid = WELL_KNOWN_SID_TYPE.IUserSid;
pub const WinBuiltinCryptoOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinCryptoOperatorsSid;
pub const WinUntrustedLabelSid = WELL_KNOWN_SID_TYPE.UntrustedLabelSid;
pub const WinLowLabelSid = WELL_KNOWN_SID_TYPE.LowLabelSid;
pub const WinMediumLabelSid = WELL_KNOWN_SID_TYPE.MediumLabelSid;
pub const WinHighLabelSid = WELL_KNOWN_SID_TYPE.HighLabelSid;
pub const WinSystemLabelSid = WELL_KNOWN_SID_TYPE.SystemLabelSid;
pub const WinWriteRestrictedCodeSid = WELL_KNOWN_SID_TYPE.WriteRestrictedCodeSid;
pub const WinCreatorOwnerRightsSid = WELL_KNOWN_SID_TYPE.CreatorOwnerRightsSid;
pub const WinCacheablePrincipalsGroupSid = WELL_KNOWN_SID_TYPE.CacheablePrincipalsGroupSid;
pub const WinNonCacheablePrincipalsGroupSid = WELL_KNOWN_SID_TYPE.NonCacheablePrincipalsGroupSid;
pub const WinEnterpriseReadonlyControllersSid = WELL_KNOWN_SID_TYPE.EnterpriseReadonlyControllersSid;
pub const WinAccountReadonlyControllersSid = WELL_KNOWN_SID_TYPE.AccountReadonlyControllersSid;
pub const WinBuiltinEventLogReadersGroup = WELL_KNOWN_SID_TYPE.BuiltinEventLogReadersGroup;
pub const WinNewEnterpriseReadonlyControllersSid = WELL_KNOWN_SID_TYPE.NewEnterpriseReadonlyControllersSid;
pub const WinBuiltinCertSvcDComAccessGroup = WELL_KNOWN_SID_TYPE.BuiltinCertSvcDComAccessGroup;
pub const WinMediumPlusLabelSid = WELL_KNOWN_SID_TYPE.MediumPlusLabelSid;
pub const WinLocalLogonSid = WELL_KNOWN_SID_TYPE.LocalLogonSid;
pub const WinConsoleLogonSid = WELL_KNOWN_SID_TYPE.ConsoleLogonSid;
pub const WinThisOrganizationCertificateSid = WELL_KNOWN_SID_TYPE.ThisOrganizationCertificateSid;
pub const WinApplicationPackageAuthoritySid = WELL_KNOWN_SID_TYPE.ApplicationPackageAuthoritySid;
pub const WinBuiltinAnyPackageSid = WELL_KNOWN_SID_TYPE.BuiltinAnyPackageSid;
pub const WinCapabilityInternetClientSid = WELL_KNOWN_SID_TYPE.CapabilityInternetClientSid;
pub const WinCapabilityInternetClientServerSid = WELL_KNOWN_SID_TYPE.CapabilityInternetClientServerSid;
pub const WinCapabilityPrivateNetworkClientServerSid = WELL_KNOWN_SID_TYPE.CapabilityPrivateNetworkClientServerSid;
pub const WinCapabilityPicturesLibrarySid = WELL_KNOWN_SID_TYPE.CapabilityPicturesLibrarySid;
pub const WinCapabilityVideosLibrarySid = WELL_KNOWN_SID_TYPE.CapabilityVideosLibrarySid;
pub const WinCapabilityMusicLibrarySid = WELL_KNOWN_SID_TYPE.CapabilityMusicLibrarySid;
pub const WinCapabilityDocumentsLibrarySid = WELL_KNOWN_SID_TYPE.CapabilityDocumentsLibrarySid;
pub const WinCapabilitySharedUserCertificatesSid = WELL_KNOWN_SID_TYPE.CapabilitySharedUserCertificatesSid;
pub const WinCapabilityEnterpriseAuthenticationSid = WELL_KNOWN_SID_TYPE.CapabilityEnterpriseAuthenticationSid;
pub const WinCapabilityRemovableStorageSid = WELL_KNOWN_SID_TYPE.CapabilityRemovableStorageSid;
pub const WinBuiltinRDSRemoteAccessServersSid = WELL_KNOWN_SID_TYPE.BuiltinRDSRemoteAccessServersSid;
pub const WinBuiltinRDSEndpointServersSid = WELL_KNOWN_SID_TYPE.BuiltinRDSEndpointServersSid;
pub const WinBuiltinRDSManagementServersSid = WELL_KNOWN_SID_TYPE.BuiltinRDSManagementServersSid;
pub const WinUserModeDriversSid = WELL_KNOWN_SID_TYPE.UserModeDriversSid;
pub const WinBuiltinHyperVAdminsSid = WELL_KNOWN_SID_TYPE.BuiltinHyperVAdminsSid;
pub const WinAccountCloneableControllersSid = WELL_KNOWN_SID_TYPE.AccountCloneableControllersSid;
pub const WinBuiltinAccessControlAssistanceOperatorsSid = WELL_KNOWN_SID_TYPE.BuiltinAccessControlAssistanceOperatorsSid;
pub const WinBuiltinRemoteManagementUsersSid = WELL_KNOWN_SID_TYPE.BuiltinRemoteManagementUsersSid;
pub const WinAuthenticationAuthorityAssertedSid = WELL_KNOWN_SID_TYPE.AuthenticationAuthorityAssertedSid;
pub const WinAuthenticationServiceAssertedSid = WELL_KNOWN_SID_TYPE.AuthenticationServiceAssertedSid;
pub const WinLocalAccountSid = WELL_KNOWN_SID_TYPE.LocalAccountSid;
pub const WinLocalAccountAndAdministratorSid = WELL_KNOWN_SID_TYPE.LocalAccountAndAdministratorSid;
pub const WinAccountProtectedUsersSid = WELL_KNOWN_SID_TYPE.AccountProtectedUsersSid;
pub const WinCapabilityAppointmentsSid = WELL_KNOWN_SID_TYPE.CapabilityAppointmentsSid;
pub const WinCapabilityContactsSid = WELL_KNOWN_SID_TYPE.CapabilityContactsSid;
pub const WinAccountDefaultSystemManagedSid = WELL_KNOWN_SID_TYPE.AccountDefaultSystemManagedSid;
pub const WinBuiltinDefaultSystemManagedGroupSid = WELL_KNOWN_SID_TYPE.BuiltinDefaultSystemManagedGroupSid;
pub const WinBuiltinStorageReplicaAdminsSid = WELL_KNOWN_SID_TYPE.BuiltinStorageReplicaAdminsSid;
pub const WinAccountKeyAdminsSid = WELL_KNOWN_SID_TYPE.AccountKeyAdminsSid;
pub const WinAccountEnterpriseKeyAdminsSid = WELL_KNOWN_SID_TYPE.AccountEnterpriseKeyAdminsSid;
pub const WinAuthenticationKeyTrustSid = WELL_KNOWN_SID_TYPE.AuthenticationKeyTrustSid;
pub const WinAuthenticationKeyPropertyMFASid = WELL_KNOWN_SID_TYPE.AuthenticationKeyPropertyMFASid;
pub const WinAuthenticationKeyPropertyAttestationSid = WELL_KNOWN_SID_TYPE.AuthenticationKeyPropertyAttestationSid;
pub const WinAuthenticationFreshKeyAuthSid = WELL_KNOWN_SID_TYPE.AuthenticationFreshKeyAuthSid;
pub const WinBuiltinDeviceOwnersSid = WELL_KNOWN_SID_TYPE.BuiltinDeviceOwnersSid;
pub const ACL = extern struct {
AclRevision: u8,
Sbz1: u8,
AclSize: u16,
AceCount: u16,
Sbz2: u16,
};
pub const ACE_HEADER = extern struct {
AceType: u8,
AceFlags: u8,
AceSize: u16,
};
pub const ACCESS_ALLOWED_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const ACCESS_DENIED_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_AUDIT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_ALARM_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_RESOURCE_ATTRIBUTE_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_SCOPED_POLICY_ID_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_MANDATORY_LABEL_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_PROCESS_TRUST_LABEL_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_ACCESS_FILTER_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const ACCESS_ALLOWED_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const ACCESS_DENIED_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const SYSTEM_AUDIT_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const SYSTEM_ALARM_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: u32,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const ACCESS_ALLOWED_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const ACCESS_DENIED_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_AUDIT_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const SYSTEM_ALARM_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
SidStart: u32,
};
pub const ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const ACCESS_DENIED_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const SYSTEM_ALARM_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: u32,
Flags: SYSTEM_AUDIT_OBJECT_ACE_FLAGS,
ObjectType: Guid,
InheritedObjectType: Guid,
SidStart: u32,
};
pub const ACL_INFORMATION_CLASS = enum(i32) {
RevisionInformation = 1,
SizeInformation = 2,
};
pub const AclRevisionInformation = ACL_INFORMATION_CLASS.RevisionInformation;
pub const AclSizeInformation = ACL_INFORMATION_CLASS.SizeInformation;
pub const ACL_REVISION_INFORMATION = extern struct {
AclRevision: u32,
};
pub const ACL_SIZE_INFORMATION = extern struct {
AceCount: u32,
AclBytesInUse: u32,
AclBytesFree: u32,
};
pub const SECURITY_DESCRIPTOR = extern struct {
Revision: u8,
Sbz1: u8,
Control: u16,
Owner: ?PSID,
Group: ?PSID,
Sacl: ?*ACL,
Dacl: ?*ACL,
};
pub const OBJECT_TYPE_LIST = extern struct {
Level: u16,
Sbz: u16,
ObjectType: ?*Guid,
};
pub const AUDIT_EVENT_TYPE = enum(i32) {
ObjectAccess = 0,
DirectoryServiceAccess = 1,
};
pub const AuditEventObjectAccess = AUDIT_EVENT_TYPE.ObjectAccess;
pub const AuditEventDirectoryServiceAccess = AUDIT_EVENT_TYPE.DirectoryServiceAccess;
pub const PRIVILEGE_SET = extern struct {
PrivilegeCount: u32,
Control: u32,
Privilege: [1]LUID_AND_ATTRIBUTES,
};
pub const ACCESS_REASONS = extern struct {
Data: [32]u32,
};
pub const SE_SECURITY_DESCRIPTOR = extern struct {
Size: u32,
Flags: u32,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
};
pub const SE_ACCESS_REQUEST = extern struct {
Size: u32,
SeSecurityDescriptor: ?*SE_SECURITY_DESCRIPTOR,
DesiredAccess: u32,
PreviouslyGrantedAccess: u32,
PrincipalSelfSid: ?PSID,
GenericMapping: ?*GENERIC_MAPPING,
ObjectTypeListCount: u32,
ObjectTypeList: ?*OBJECT_TYPE_LIST,
};
pub const SE_ACCESS_REPLY = extern struct {
Size: u32,
ResultListCount: u32,
GrantedAccess: ?*u32,
AccessStatus: ?*u32,
AccessReason: ?*ACCESS_REASONS,
Privileges: ?*?*PRIVILEGE_SET,
};
pub const SECURITY_IMPERSONATION_LEVEL = enum(i32) {
Anonymous = 0,
Identification = 1,
Impersonation = 2,
Delegation = 3,
};
pub const SecurityAnonymous = SECURITY_IMPERSONATION_LEVEL.Anonymous;
pub const SecurityIdentification = SECURITY_IMPERSONATION_LEVEL.Identification;
pub const SecurityImpersonation = SECURITY_IMPERSONATION_LEVEL.Impersonation;
pub const SecurityDelegation = SECURITY_IMPERSONATION_LEVEL.Delegation;
pub const TOKEN_TYPE = enum(i32) {
Primary = 1,
Impersonation = 2,
};
pub const TokenPrimary = TOKEN_TYPE.Primary;
pub const TokenImpersonation = TOKEN_TYPE.Impersonation;
pub const TOKEN_ELEVATION_TYPE = enum(i32) {
Default = 1,
Full = 2,
Limited = 3,
};
pub const TokenElevationTypeDefault = TOKEN_ELEVATION_TYPE.Default;
pub const TokenElevationTypeFull = TOKEN_ELEVATION_TYPE.Full;
pub const TokenElevationTypeLimited = TOKEN_ELEVATION_TYPE.Limited;
pub const TOKEN_INFORMATION_CLASS = enum(i32) {
TokenUser = 1,
TokenGroups = 2,
TokenPrivileges = 3,
TokenOwner = 4,
TokenPrimaryGroup = 5,
TokenDefaultDacl = 6,
TokenSource = 7,
TokenType = 8,
TokenImpersonationLevel = 9,
TokenStatistics = 10,
TokenRestrictedSids = 11,
TokenSessionId = 12,
TokenGroupsAndPrivileges = 13,
TokenSessionReference = 14,
TokenSandBoxInert = 15,
TokenAuditPolicy = 16,
TokenOrigin = 17,
TokenElevationType = 18,
TokenLinkedToken = 19,
TokenElevation = 20,
TokenHasRestrictions = 21,
TokenAccessInformation = 22,
TokenVirtualizationAllowed = 23,
TokenVirtualizationEnabled = 24,
TokenIntegrityLevel = 25,
TokenUIAccess = 26,
TokenMandatoryPolicy = 27,
TokenLogonSid = 28,
TokenIsAppContainer = 29,
TokenCapabilities = 30,
TokenAppContainerSid = 31,
TokenAppContainerNumber = 32,
TokenUserClaimAttributes = 33,
TokenDeviceClaimAttributes = 34,
TokenRestrictedUserClaimAttributes = 35,
TokenRestrictedDeviceClaimAttributes = 36,
TokenDeviceGroups = 37,
TokenRestrictedDeviceGroups = 38,
TokenSecurityAttributes = 39,
TokenIsRestricted = 40,
TokenProcessTrustLevel = 41,
TokenPrivateNameSpace = 42,
TokenSingletonAttributes = 43,
TokenBnoIsolation = 44,
TokenChildProcessFlags = 45,
TokenIsLessPrivilegedAppContainer = 46,
TokenIsSandboxed = 47,
MaxTokenInfoClass = 48,
};
pub const TokenUser = TOKEN_INFORMATION_CLASS.TokenUser;
pub const TokenGroups = TOKEN_INFORMATION_CLASS.TokenGroups;
pub const TokenPrivileges = TOKEN_INFORMATION_CLASS.TokenPrivileges;
pub const TokenOwner = TOKEN_INFORMATION_CLASS.TokenOwner;
pub const TokenPrimaryGroup = TOKEN_INFORMATION_CLASS.TokenPrimaryGroup;
pub const TokenDefaultDacl = TOKEN_INFORMATION_CLASS.TokenDefaultDacl;
pub const TokenSource = TOKEN_INFORMATION_CLASS.TokenSource;
pub const TokenType = TOKEN_INFORMATION_CLASS.TokenType;
pub const TokenImpersonationLevel = TOKEN_INFORMATION_CLASS.TokenImpersonationLevel;
pub const TokenStatistics = TOKEN_INFORMATION_CLASS.TokenStatistics;
pub const TokenRestrictedSids = TOKEN_INFORMATION_CLASS.TokenRestrictedSids;
pub const TokenSessionId = TOKEN_INFORMATION_CLASS.TokenSessionId;
pub const TokenGroupsAndPrivileges = TOKEN_INFORMATION_CLASS.TokenGroupsAndPrivileges;
pub const TokenSessionReference = TOKEN_INFORMATION_CLASS.TokenSessionReference;
pub const TokenSandBoxInert = TOKEN_INFORMATION_CLASS.TokenSandBoxInert;
pub const TokenAuditPolicy = TOKEN_INFORMATION_CLASS.TokenAuditPolicy;
pub const TokenOrigin = TOKEN_INFORMATION_CLASS.TokenOrigin;
pub const TokenElevationType = TOKEN_INFORMATION_CLASS.TokenElevationType;
pub const TokenLinkedToken = TOKEN_INFORMATION_CLASS.TokenLinkedToken;
pub const TokenElevation = TOKEN_INFORMATION_CLASS.TokenElevation;
pub const TokenHasRestrictions = TOKEN_INFORMATION_CLASS.TokenHasRestrictions;
pub const TokenAccessInformation = TOKEN_INFORMATION_CLASS.TokenAccessInformation;
pub const TokenVirtualizationAllowed = TOKEN_INFORMATION_CLASS.TokenVirtualizationAllowed;
pub const TokenVirtualizationEnabled = TOKEN_INFORMATION_CLASS.TokenVirtualizationEnabled;
pub const TokenIntegrityLevel = TOKEN_INFORMATION_CLASS.TokenIntegrityLevel;
pub const TokenUIAccess = TOKEN_INFORMATION_CLASS.TokenUIAccess;
pub const TokenMandatoryPolicy = TOKEN_INFORMATION_CLASS.TokenMandatoryPolicy;
pub const TokenLogonSid = TOKEN_INFORMATION_CLASS.TokenLogonSid;
pub const TokenIsAppContainer = TOKEN_INFORMATION_CLASS.TokenIsAppContainer;
pub const TokenCapabilities = TOKEN_INFORMATION_CLASS.TokenCapabilities;
pub const TokenAppContainerSid = TOKEN_INFORMATION_CLASS.TokenAppContainerSid;
pub const TokenAppContainerNumber = TOKEN_INFORMATION_CLASS.TokenAppContainerNumber;
pub const TokenUserClaimAttributes = TOKEN_INFORMATION_CLASS.TokenUserClaimAttributes;
pub const TokenDeviceClaimAttributes = TOKEN_INFORMATION_CLASS.TokenDeviceClaimAttributes;
pub const TokenRestrictedUserClaimAttributes = TOKEN_INFORMATION_CLASS.TokenRestrictedUserClaimAttributes;
pub const TokenRestrictedDeviceClaimAttributes = TOKEN_INFORMATION_CLASS.TokenRestrictedDeviceClaimAttributes;
pub const TokenDeviceGroups = TOKEN_INFORMATION_CLASS.TokenDeviceGroups;
pub const TokenRestrictedDeviceGroups = TOKEN_INFORMATION_CLASS.TokenRestrictedDeviceGroups;
pub const TokenSecurityAttributes = TOKEN_INFORMATION_CLASS.TokenSecurityAttributes;
pub const TokenIsRestricted = TOKEN_INFORMATION_CLASS.TokenIsRestricted;
pub const TokenProcessTrustLevel = TOKEN_INFORMATION_CLASS.TokenProcessTrustLevel;
pub const TokenPrivateNameSpace = TOKEN_INFORMATION_CLASS.TokenPrivateNameSpace;
pub const TokenSingletonAttributes = TOKEN_INFORMATION_CLASS.TokenSingletonAttributes;
pub const TokenBnoIsolation = TOKEN_INFORMATION_CLASS.TokenBnoIsolation;
pub const TokenChildProcessFlags = TOKEN_INFORMATION_CLASS.TokenChildProcessFlags;
pub const TokenIsLessPrivilegedAppContainer = TOKEN_INFORMATION_CLASS.TokenIsLessPrivilegedAppContainer;
pub const TokenIsSandboxed = TOKEN_INFORMATION_CLASS.TokenIsSandboxed;
pub const MaxTokenInfoClass = TOKEN_INFORMATION_CLASS.MaxTokenInfoClass;
pub const TOKEN_USER = extern struct {
User: SID_AND_ATTRIBUTES,
};
pub const TOKEN_GROUPS = extern struct {
GroupCount: u32,
Groups: [1]SID_AND_ATTRIBUTES,
};
pub const TOKEN_PRIVILEGES = extern struct {
PrivilegeCount: u32,
Privileges: [1]LUID_AND_ATTRIBUTES,
};
pub const TOKEN_OWNER = extern struct {
Owner: ?PSID,
};
pub const TOKEN_PRIMARY_GROUP = extern struct {
PrimaryGroup: ?PSID,
};
pub const TOKEN_DEFAULT_DACL = extern struct {
DefaultDacl: ?*ACL,
};
pub const TOKEN_USER_CLAIMS = extern struct {
UserClaims: ?*anyopaque,
};
pub const TOKEN_DEVICE_CLAIMS = extern struct {
DeviceClaims: ?*anyopaque,
};
pub const TOKEN_GROUPS_AND_PRIVILEGES = extern struct {
SidCount: u32,
SidLength: u32,
Sids: ?*SID_AND_ATTRIBUTES,
RestrictedSidCount: u32,
RestrictedSidLength: u32,
RestrictedSids: ?*SID_AND_ATTRIBUTES,
PrivilegeCount: u32,
PrivilegeLength: u32,
Privileges: ?*LUID_AND_ATTRIBUTES,
AuthenticationId: LUID,
};
pub const TOKEN_LINKED_TOKEN = extern struct {
LinkedToken: ?HANDLE,
};
pub const TOKEN_ELEVATION = extern struct {
TokenIsElevated: u32,
};
pub const TOKEN_MANDATORY_LABEL = extern struct {
Label: SID_AND_ATTRIBUTES,
};
pub const TOKEN_MANDATORY_POLICY = extern struct {
Policy: TOKEN_MANDATORY_POLICY_ID,
};
pub const TOKEN_ACCESS_INFORMATION = extern struct {
SidHash: ?*SID_AND_ATTRIBUTES_HASH,
RestrictedSidHash: ?*SID_AND_ATTRIBUTES_HASH,
Privileges: ?*TOKEN_PRIVILEGES,
AuthenticationId: LUID,
TokenType: TOKEN_TYPE,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
MandatoryPolicy: TOKEN_MANDATORY_POLICY,
Flags: u32,
AppContainerNumber: u32,
PackageSid: ?PSID,
CapabilitiesHash: ?*SID_AND_ATTRIBUTES_HASH,
TrustLevelSid: ?PSID,
SecurityAttributes: ?*anyopaque,
};
pub const TOKEN_AUDIT_POLICY = extern struct {
PerUserPolicy: [30]u8,
};
pub const TOKEN_SOURCE = extern struct {
SourceName: [8]CHAR,
SourceIdentifier: LUID,
};
pub const TOKEN_STATISTICS = extern struct {
TokenId: LUID,
AuthenticationId: LUID,
ExpirationTime: LARGE_INTEGER,
TokenType: TOKEN_TYPE,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
DynamicCharged: u32,
DynamicAvailable: u32,
GroupCount: u32,
PrivilegeCount: u32,
ModifiedId: LUID,
};
pub const TOKEN_CONTROL = extern struct {
TokenId: LUID,
AuthenticationId: LUID,
ModifiedId: LUID,
TokenSource: TOKEN_SOURCE,
};
pub const TOKEN_ORIGIN = extern struct {
OriginatingLogonSession: LUID,
};
pub const MANDATORY_LEVEL = enum(i32) {
Untrusted = 0,
Low = 1,
Medium = 2,
High = 3,
System = 4,
SecureProcess = 5,
Count = 6,
};
pub const MandatoryLevelUntrusted = MANDATORY_LEVEL.Untrusted;
pub const MandatoryLevelLow = MANDATORY_LEVEL.Low;
pub const MandatoryLevelMedium = MANDATORY_LEVEL.Medium;
pub const MandatoryLevelHigh = MANDATORY_LEVEL.High;
pub const MandatoryLevelSystem = MANDATORY_LEVEL.System;
pub const MandatoryLevelSecureProcess = MANDATORY_LEVEL.SecureProcess;
pub const MandatoryLevelCount = MANDATORY_LEVEL.Count;
pub const TOKEN_APPCONTAINER_INFORMATION = extern struct {
TokenAppContainer: ?PSID,
};
pub const CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = extern struct {
Version: u64,
Name: ?PWSTR,
};
pub const CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = extern struct {
pValue: ?*anyopaque,
ValueLength: u32,
};
pub const CLAIM_SECURITY_ATTRIBUTE_V1 = extern struct {
Name: ?PWSTR,
ValueType: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE,
Reserved: u16,
Flags: u32,
ValueCount: u32,
Values: extern union {
pInt64: ?*i64,
pUint64: ?*u64,
ppString: ?*?PWSTR,
pFqbn: ?*CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE,
pOctetString: ?*CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE,
},
};
pub const CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = extern struct {
Name: u32,
ValueType: CLAIM_SECURITY_ATTRIBUTE_VALUE_TYPE,
Reserved: u16,
Flags: CLAIM_SECURITY_ATTRIBUTE_FLAGS,
ValueCount: u32,
Values: extern union {
pInt64: [1]u32,
pUint64: [1]u32,
ppString: [1]u32,
pFqbn: [1]u32,
pOctetString: [1]u32,
},
};
pub const CLAIM_SECURITY_ATTRIBUTES_INFORMATION = extern struct {
Version: u16,
Reserved: u16,
AttributeCount: u32,
Attribute: extern union {
pAttributeV1: ?*CLAIM_SECURITY_ATTRIBUTE_V1,
},
};
pub const SECURITY_QUALITY_OF_SERVICE = extern struct {
Length: u32,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
ContextTrackingMode: u8,
EffectiveOnly: BOOLEAN,
};
pub const SE_IMPERSONATION_STATE = extern struct {
Token: ?*anyopaque,
CopyOnOpen: BOOLEAN,
EffectiveOnly: BOOLEAN,
Level: SECURITY_IMPERSONATION_LEVEL,
};
pub const SECURITY_CAPABILITIES = extern struct {
AppContainerSid: ?PSID,
Capabilities: ?*SID_AND_ATTRIBUTES,
CapabilityCount: u32,
Reserved: u32,
};
pub const QUOTA_LIMITS = extern struct {
PagedPoolLimit: usize,
NonPagedPoolLimit: usize,
MinimumWorkingSetSize: usize,
MaximumWorkingSetSize: usize,
PagefileLimit: usize,
TimeLimit: LARGE_INTEGER,
};
//--------------------------------------------------------------------------------
// Section: Functions (133)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheck(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
ClientToken: ?HANDLE,
DesiredAccess: u32,
GenericMapping: ?*GENERIC_MAPPING,
// TODO: what to do with BytesParamIndex 5?
PrivilegeSet: ?*PRIVILEGE_SET,
PrivilegeSetLength: ?*u32,
GrantedAccess: ?*u32,
AccessStatus: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn AccessCheckAndAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
ObjectTypeName: ?PWSTR,
ObjectName: ?PWSTR,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
DesiredAccess: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccess: ?*u32,
AccessStatus: ?*i32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheckByType(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
ClientToken: ?HANDLE,
DesiredAccess: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
// TODO: what to do with BytesParamIndex 8?
PrivilegeSet: ?*PRIVILEGE_SET,
PrivilegeSetLength: ?*u32,
GrantedAccess: ?*u32,
AccessStatus: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheckByTypeResultList(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
ClientToken: ?HANDLE,
DesiredAccess: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
// TODO: what to do with BytesParamIndex 8?
PrivilegeSet: ?*PRIVILEGE_SET,
PrivilegeSetLength: ?*u32,
GrantedAccessList: [*]u32,
AccessStatusList: [*]u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn AccessCheckByTypeAndAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
ObjectTypeName: ?[*:0]const u16,
ObjectName: ?[*:0]const u16,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
DesiredAccess: u32,
AuditType: AUDIT_EVENT_TYPE,
Flags: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccess: ?*u32,
AccessStatus: ?*i32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn AccessCheckByTypeResultListAndAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
ObjectTypeName: ?[*:0]const u16,
ObjectName: ?[*:0]const u16,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
DesiredAccess: u32,
AuditType: AUDIT_EVENT_TYPE,
Flags: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccessList: [*]u32,
AccessStatusList: [*]u32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn AccessCheckByTypeResultListAndAuditAlarmByHandleW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
ClientToken: ?HANDLE,
ObjectTypeName: ?[*:0]const u16,
ObjectName: ?[*:0]const u16,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
DesiredAccess: u32,
AuditType: AUDIT_EVENT_TYPE,
Flags: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccessList: [*]u32,
AccessStatusList: [*]u32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAccessAllowedAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AccessMask: u32,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAccessAllowedAceEx(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAccessAllowedObjectAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
ObjectTypeGuid: ?*Guid,
InheritedObjectTypeGuid: ?*Guid,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAccessDeniedAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AccessMask: u32,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAccessDeniedAceEx(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAccessDeniedObjectAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
ObjectTypeGuid: ?*Guid,
InheritedObjectTypeGuid: ?*Guid,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAce(
pAcl: ?*ACL,
dwAceRevision: u32,
dwStartingAceIndex: u32,
// TODO: what to do with BytesParamIndex 4?
pAceList: ?*anyopaque,
nAceListLength: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAuditAccessAce(
pAcl: ?*ACL,
dwAceRevision: u32,
dwAccessMask: u32,
pSid: ?PSID,
bAuditSuccess: BOOL,
bAuditFailure: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAuditAccessAceEx(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
dwAccessMask: u32,
pSid: ?PSID,
bAuditSuccess: BOOL,
bAuditFailure: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AddAuditAccessObjectAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
ObjectTypeGuid: ?*Guid,
InheritedObjectTypeGuid: ?*Guid,
pSid: ?PSID,
bAuditSuccess: BOOL,
bAuditFailure: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn AddMandatoryAce(
pAcl: ?*ACL,
dwAceRevision: ACE_REVISION,
AceFlags: ACE_FLAGS,
MandatoryPolicy: u32,
pLabelSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows8.0'
pub extern "kernel32" fn AddResourceAttributeAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
pSid: ?PSID,
pAttributeInfo: ?*CLAIM_SECURITY_ATTRIBUTES_INFORMATION,
pReturnLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows8.0'
pub extern "kernel32" fn AddScopedPolicyIDAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AccessMask: u32,
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AdjustTokenGroups(
TokenHandle: ?HANDLE,
ResetToDefault: BOOL,
NewState: ?*TOKEN_GROUPS,
BufferLength: u32,
// TODO: what to do with BytesParamIndex 3?
PreviousState: ?*TOKEN_GROUPS,
ReturnLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AdjustTokenPrivileges(
TokenHandle: ?HANDLE,
DisableAllPrivileges: BOOL,
NewState: ?*TOKEN_PRIVILEGES,
BufferLength: u32,
// TODO: what to do with BytesParamIndex 3?
PreviousState: ?*TOKEN_PRIVILEGES,
ReturnLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AllocateAndInitializeSid(
pIdentifierAuthority: ?*SID_IDENTIFIER_AUTHORITY,
nSubAuthorityCount: u8,
nSubAuthority0: u32,
nSubAuthority1: u32,
nSubAuthority2: u32,
nSubAuthority3: u32,
nSubAuthority4: u32,
nSubAuthority5: u32,
nSubAuthority6: u32,
nSubAuthority7: u32,
pSid: ?*?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AllocateLocallyUniqueId(
Luid: ?*LUID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AreAllAccessesGranted(
GrantedAccess: u32,
DesiredAccess: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AreAnyAccessesGranted(
GrantedAccess: u32,
DesiredAccess: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CheckTokenMembership(
TokenHandle: ?HANDLE,
SidToCheck: ?PSID,
IsMember: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows8.0'
pub extern "kernel32" fn CheckTokenCapability(
TokenHandle: ?HANDLE,
CapabilitySidToCheck: ?PSID,
HasCapability: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "kernel32" fn GetAppContainerAce(
Acl: ?*ACL,
StartingAceIndex: u32,
AppContainerAce: ?*?*anyopaque,
AppContainerAceIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows8.0'
pub extern "kernel32" fn CheckTokenMembershipEx(
TokenHandle: ?HANDLE,
SidToCheck: ?PSID,
Flags: u32,
IsMember: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ConvertToAutoInheritPrivateObjectSecurity(
ParentDescriptor: ?PSECURITY_DESCRIPTOR,
CurrentSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
NewSecurityDescriptor: ?*?PSECURITY_DESCRIPTOR,
ObjectType: ?*Guid,
IsDirectoryObject: BOOLEAN,
GenericMapping: ?*GENERIC_MAPPING,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CopySid(
nDestinationSidLength: u32,
// TODO: what to do with BytesParamIndex 0?
pDestinationSid: ?PSID,
pSourceSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreatePrivateObjectSecurity(
ParentDescriptor: ?PSECURITY_DESCRIPTOR,
CreatorDescriptor: ?PSECURITY_DESCRIPTOR,
NewDescriptor: ?*?PSECURITY_DESCRIPTOR,
IsDirectoryObject: BOOL,
Token: ?HANDLE,
GenericMapping: ?*GENERIC_MAPPING,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreatePrivateObjectSecurityEx(
ParentDescriptor: ?PSECURITY_DESCRIPTOR,
CreatorDescriptor: ?PSECURITY_DESCRIPTOR,
NewDescriptor: ?*?PSECURITY_DESCRIPTOR,
ObjectType: ?*Guid,
IsContainerObject: BOOL,
AutoInheritFlags: SECURITY_AUTO_INHERIT_FLAGS,
Token: ?HANDLE,
GenericMapping: ?*GENERIC_MAPPING,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreatePrivateObjectSecurityWithMultipleInheritance(
ParentDescriptor: ?PSECURITY_DESCRIPTOR,
CreatorDescriptor: ?PSECURITY_DESCRIPTOR,
NewDescriptor: ?*?PSECURITY_DESCRIPTOR,
ObjectTypes: ?[*]?*Guid,
GuidCount: u32,
IsContainerObject: BOOL,
AutoInheritFlags: SECURITY_AUTO_INHERIT_FLAGS,
Token: ?HANDLE,
GenericMapping: ?*GENERIC_MAPPING,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreateRestrictedToken(
ExistingTokenHandle: ?HANDLE,
Flags: CREATE_RESTRICTED_TOKEN_FLAGS,
DisableSidCount: u32,
SidsToDisable: ?[*]SID_AND_ATTRIBUTES,
DeletePrivilegeCount: u32,
PrivilegesToDelete: ?[*]LUID_AND_ATTRIBUTES,
RestrictedSidCount: u32,
SidsToRestrict: ?[*]SID_AND_ATTRIBUTES,
NewTokenHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreateWellKnownSid(
WellKnownSidType: WELL_KNOWN_SID_TYPE,
DomainSid: ?PSID,
// TODO: what to do with BytesParamIndex 3?
pSid: ?PSID,
cbSid: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EqualDomainSid(
pSid1: ?PSID,
pSid2: ?PSID,
pfEqual: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn DeleteAce(
pAcl: ?*ACL,
dwAceIndex: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn DestroyPrivateObjectSecurity(
ObjectDescriptor: ?*?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn DuplicateToken(
ExistingTokenHandle: ?HANDLE,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
DuplicateTokenHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn DuplicateTokenEx(
hExistingToken: ?HANDLE,
dwDesiredAccess: TOKEN_ACCESS_MASK,
lpTokenAttributes: ?*SECURITY_ATTRIBUTES,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
TokenType: TOKEN_TYPE,
phNewToken: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EqualPrefixSid(
pSid1: ?PSID,
pSid2: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EqualSid(
pSid1: ?PSID,
pSid2: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn FindFirstFreeAce(
pAcl: ?*ACL,
pAce: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn FreeSid(
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetAce(
pAcl: ?*ACL,
dwAceIndex: u32,
pAce: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetAclInformation(
pAcl: ?*ACL,
// TODO: what to do with BytesParamIndex 2?
pAclInformation: ?*anyopaque,
nAclInformationLength: u32,
dwAclInformationClass: ACL_INFORMATION_CLASS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn GetFileSecurityW(
lpFileName: ?[*:0]const u16,
RequestedInformation: u32,
// TODO: what to do with BytesParamIndex 3?
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
nLength: u32,
lpnLengthNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetKernelObjectSecurity(
Handle: ?HANDLE,
RequestedInformation: u32,
// TODO: what to do with BytesParamIndex 3?
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
nLength: u32,
lpnLengthNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetLengthSid(
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetPrivateObjectSecurity(
ObjectDescriptor: ?PSECURITY_DESCRIPTOR,
SecurityInformation: u32,
// TODO: what to do with BytesParamIndex 3?
ResultantDescriptor: ?PSECURITY_DESCRIPTOR,
DescriptorLength: u32,
ReturnLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorControl(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
pControl: ?*u16,
lpdwRevision: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorDacl(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
lpbDaclPresent: ?*i32,
pDacl: ?*?*ACL,
lpbDaclDefaulted: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorGroup(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
pGroup: ?*?PSID,
lpbGroupDefaulted: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorLength(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorOwner(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
pOwner: ?*?PSID,
lpbOwnerDefaulted: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorRMControl(
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
RMControl: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSecurityDescriptorSacl(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
lpbSaclPresent: ?*i32,
pSacl: ?*?*ACL,
lpbSaclDefaulted: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSidIdentifierAuthority(
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) ?*SID_IDENTIFIER_AUTHORITY;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSidLengthRequired(
nSubAuthorityCount: u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSidSubAuthority(
pSid: ?PSID,
nSubAuthority: u32,
) callconv(@import("std").os.windows.WINAPI) ?*u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetSidSubAuthorityCount(
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) ?*u8;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetTokenInformation(
TokenHandle: ?HANDLE,
TokenInformationClass: TOKEN_INFORMATION_CLASS,
// TODO: what to do with BytesParamIndex 3?
TokenInformation: ?*anyopaque,
TokenInformationLength: u32,
ReturnLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetWindowsAccountDomainSid(
pSid: ?PSID,
// TODO: what to do with BytesParamIndex 2?
pDomainSid: ?PSID,
cbDomainSid: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ImpersonateAnonymousToken(
ThreadHandle: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ImpersonateLoggedOnUser(
hToken: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ImpersonateSelf(
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn InitializeAcl(
// TODO: what to do with BytesParamIndex 1?
pAcl: ?*ACL,
nAclLength: u32,
dwAclRevision: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn InitializeSecurityDescriptor(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
dwRevision: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn InitializeSid(
Sid: ?PSID,
pIdentifierAuthority: ?*SID_IDENTIFIER_AUTHORITY,
nSubAuthorityCount: u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn IsTokenRestricted(
TokenHandle: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn IsValidAcl(
pAcl: ?*ACL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn IsValidSecurityDescriptor(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn IsValidSid(
pSid: ?PSID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn IsWellKnownSid(
pSid: ?PSID,
WellKnownSidType: WELL_KNOWN_SID_TYPE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn MakeAbsoluteSD(
pSelfRelativeSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
// TODO: what to do with BytesParamIndex 2?
pAbsoluteSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
lpdwAbsoluteSecurityDescriptorSize: ?*u32,
// TODO: what to do with BytesParamIndex 4?
pDacl: ?*ACL,
lpdwDaclSize: ?*u32,
// TODO: what to do with BytesParamIndex 6?
pSacl: ?*ACL,
lpdwSaclSize: ?*u32,
// TODO: what to do with BytesParamIndex 8?
pOwner: ?PSID,
lpdwOwnerSize: ?*u32,
// TODO: what to do with BytesParamIndex 10?
pPrimaryGroup: ?PSID,
lpdwPrimaryGroupSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn MakeSelfRelativeSD(
pAbsoluteSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
// TODO: what to do with BytesParamIndex 2?
pSelfRelativeSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
lpdwBufferLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn MapGenericMask(
AccessMask: ?*u32,
GenericMapping: ?*GENERIC_MAPPING,
) callconv(@import("std").os.windows.WINAPI) void;
pub extern "advapi32" fn ObjectCloseAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
GenerateOnClose: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn ObjectDeleteAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
GenerateOnClose: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn ObjectOpenAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
ObjectTypeName: ?PWSTR,
ObjectName: ?PWSTR,
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
ClientToken: ?HANDLE,
DesiredAccess: u32,
GrantedAccess: u32,
Privileges: ?*PRIVILEGE_SET,
ObjectCreation: BOOL,
AccessGranted: BOOL,
GenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn ObjectPrivilegeAuditAlarmW(
SubsystemName: ?[*:0]const u16,
HandleId: ?*anyopaque,
ClientToken: ?HANDLE,
DesiredAccess: u32,
Privileges: ?*PRIVILEGE_SET,
AccessGranted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn PrivilegeCheck(
ClientToken: ?HANDLE,
RequiredPrivileges: ?*PRIVILEGE_SET,
pfResult: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn PrivilegedServiceAuditAlarmW(
SubsystemName: ?[*:0]const u16,
ServiceName: ?[*:0]const u16,
ClientToken: ?HANDLE,
Privileges: ?*PRIVILEGE_SET,
AccessGranted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn QuerySecurityAccessMask(
SecurityInformation: u32,
DesiredAccess: ?*u32,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn RevertToSelf(
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetAclInformation(
pAcl: ?*ACL,
// TODO: what to do with BytesParamIndex 2?
pAclInformation: ?*anyopaque,
nAclInformationLength: u32,
dwAclInformationClass: ACL_INFORMATION_CLASS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn SetFileSecurityW(
lpFileName: ?[*:0]const u16,
SecurityInformation: u32,
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetKernelObjectSecurity(
Handle: ?HANDLE,
SecurityInformation: u32,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetPrivateObjectSecurity(
SecurityInformation: u32,
ModificationDescriptor: ?PSECURITY_DESCRIPTOR,
ObjectsSecurityDescriptor: ?*?PSECURITY_DESCRIPTOR,
GenericMapping: ?*GENERIC_MAPPING,
Token: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetPrivateObjectSecurityEx(
SecurityInformation: u32,
ModificationDescriptor: ?PSECURITY_DESCRIPTOR,
ObjectsSecurityDescriptor: ?*?PSECURITY_DESCRIPTOR,
AutoInheritFlags: SECURITY_AUTO_INHERIT_FLAGS,
GenericMapping: ?*GENERIC_MAPPING,
Token: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn SetSecurityAccessMask(
SecurityInformation: u32,
DesiredAccess: ?*u32,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetSecurityDescriptorControl(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
ControlBitsOfInterest: u16,
ControlBitsToSet: u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetSecurityDescriptorDacl(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
bDaclPresent: BOOL,
pDacl: ?*ACL,
bDaclDefaulted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetSecurityDescriptorGroup(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
pGroup: ?PSID,
bGroupDefaulted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetSecurityDescriptorOwner(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
pOwner: ?PSID,
bOwnerDefaulted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetSecurityDescriptorRMControl(
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
RMControl: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetSecurityDescriptorSacl(
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
bSaclPresent: BOOL,
pSacl: ?*ACL,
bSaclDefaulted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetTokenInformation(
TokenHandle: ?HANDLE,
TokenInformationClass: TOKEN_INFORMATION_CLASS,
// TODO: what to do with BytesParamIndex 3?
TokenInformation: ?*anyopaque,
TokenInformationLength: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "kernel32" fn SetCachedSigningLevel(
SourceFiles: [*]?HANDLE,
SourceFileCount: u32,
Flags: u32,
TargetFile: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "kernel32" fn GetCachedSigningLevel(
File: ?HANDLE,
Flags: ?*u32,
SigningLevel: ?*u32,
// TODO: what to do with BytesParamIndex 4?
Thumbprint: ?*u8,
ThumbprintSize: ?*u32,
ThumbprintAlgorithm: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "api-ms-win-security-base-l1-2-2" fn DeriveCapabilitySidsFromName(
CapName: ?[*:0]const u16,
CapabilityGroupSids: ?*?*?PSID,
CapabilityGroupSidCount: ?*u32,
CapabilitySids: ?*?*?PSID,
CapabilitySidCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "ntdll" fn RtlNormalizeSecurityDescriptor(
SecurityDescriptor: ?*?PSECURITY_DESCRIPTOR,
SecurityDescriptorLength: u32,
NewSecurityDescriptor: ?*?PSECURITY_DESCRIPTOR,
NewSecurityDescriptorLength: ?*u32,
CheckOnly: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn SetUserObjectSecurity(
hObj: ?HANDLE,
pSIRequested: ?*OBJECT_SECURITY_INFORMATION,
pSID: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn GetUserObjectSecurity(
hObj: ?HANDLE,
pSIRequested: ?*u32,
// TODO: what to do with BytesParamIndex 3?
pSID: ?PSECURITY_DESCRIPTOR,
nLength: u32,
lpnLengthNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheckAndAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
ObjectTypeName: ?PSTR,
ObjectName: ?PSTR,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
DesiredAccess: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccess: ?*u32,
AccessStatus: ?*i32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheckByTypeAndAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
ObjectTypeName: ?[*:0]const u8,
ObjectName: ?[*:0]const u8,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
DesiredAccess: u32,
AuditType: AUDIT_EVENT_TYPE,
Flags: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccess: ?*u32,
AccessStatus: ?*i32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheckByTypeResultListAndAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
ObjectTypeName: ?[*:0]const u8,
ObjectName: ?[*:0]const u8,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
DesiredAccess: u32,
AuditType: AUDIT_EVENT_TYPE,
Flags: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccess: [*]u32,
AccessStatusList: [*]u32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn AccessCheckByTypeResultListAndAuditAlarmByHandleA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
ClientToken: ?HANDLE,
ObjectTypeName: ?[*:0]const u8,
ObjectName: ?[*:0]const u8,
SecurityDescriptor: ?PSECURITY_DESCRIPTOR,
PrincipalSelfSid: ?PSID,
DesiredAccess: u32,
AuditType: AUDIT_EVENT_TYPE,
Flags: u32,
ObjectTypeList: ?[*]OBJECT_TYPE_LIST,
ObjectTypeListLength: u32,
GenericMapping: ?*GENERIC_MAPPING,
ObjectCreation: BOOL,
GrantedAccess: [*]u32,
AccessStatusList: [*]u32,
pfGenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ObjectOpenAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
ObjectTypeName: ?PSTR,
ObjectName: ?PSTR,
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
ClientToken: ?HANDLE,
DesiredAccess: u32,
GrantedAccess: u32,
Privileges: ?*PRIVILEGE_SET,
ObjectCreation: BOOL,
AccessGranted: BOOL,
GenerateOnClose: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ObjectPrivilegeAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
ClientToken: ?HANDLE,
DesiredAccess: u32,
Privileges: ?*PRIVILEGE_SET,
AccessGranted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ObjectCloseAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
GenerateOnClose: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ObjectDeleteAuditAlarmA(
SubsystemName: ?[*:0]const u8,
HandleId: ?*anyopaque,
GenerateOnClose: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn PrivilegedServiceAuditAlarmA(
SubsystemName: ?[*:0]const u8,
ServiceName: ?[*:0]const u8,
ClientToken: ?HANDLE,
Privileges: ?*PRIVILEGE_SET,
AccessGranted: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.1'
pub extern "advapi32" fn AddConditionalAce(
pAcl: ?*ACL,
dwAceRevision: u32,
AceFlags: ACE_FLAGS,
AceType: u8,
AccessMask: u32,
pSid: ?PSID,
ConditionStr: ?[*]u16,
ReturnLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetFileSecurityA(
lpFileName: ?[*:0]const u8,
SecurityInformation: u32,
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetFileSecurityA(
lpFileName: ?[*:0]const u8,
RequestedInformation: u32,
// TODO: what to do with BytesParamIndex 3?
pSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
nLength: u32,
lpnLengthNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupAccountSidA(
lpSystemName: ?[*:0]const u8,
Sid: ?PSID,
Name: ?[*:0]u8,
cchName: ?*u32,
ReferencedDomainName: ?[*:0]u8,
cchReferencedDomainName: ?*u32,
peUse: ?*SID_NAME_USE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupAccountSidW(
lpSystemName: ?[*:0]const u16,
Sid: ?PSID,
Name: ?[*:0]u16,
cchName: ?*u32,
ReferencedDomainName: ?[*:0]u16,
cchReferencedDomainName: ?*u32,
peUse: ?*SID_NAME_USE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupAccountNameA(
lpSystemName: ?[*:0]const u8,
lpAccountName: ?[*:0]const u8,
// TODO: what to do with BytesParamIndex 3?
Sid: ?PSID,
cbSid: ?*u32,
ReferencedDomainName: ?[*:0]u8,
cchReferencedDomainName: ?*u32,
peUse: ?*SID_NAME_USE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupAccountNameW(
lpSystemName: ?[*:0]const u16,
lpAccountName: ?[*:0]const u16,
// TODO: what to do with BytesParamIndex 3?
Sid: ?PSID,
cbSid: ?*u32,
ReferencedDomainName: ?[*:0]u16,
cchReferencedDomainName: ?*u32,
peUse: ?*SID_NAME_USE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupPrivilegeValueA(
lpSystemName: ?[*:0]const u8,
lpName: ?[*:0]const u8,
lpLuid: ?*LUID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupPrivilegeValueW(
lpSystemName: ?[*:0]const u16,
lpName: ?[*:0]const u16,
lpLuid: ?*LUID,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupPrivilegeNameA(
lpSystemName: ?[*:0]const u8,
lpLuid: ?*LUID,
lpName: ?[*:0]u8,
cchName: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupPrivilegeNameW(
lpSystemName: ?[*:0]const u16,
lpLuid: ?*LUID,
lpName: ?[*:0]u16,
cchName: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupPrivilegeDisplayNameA(
lpSystemName: ?[*:0]const u8,
lpName: ?[*:0]const u8,
lpDisplayName: ?[*:0]u8,
cchDisplayName: ?*u32,
lpLanguageId: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LookupPrivilegeDisplayNameW(
lpSystemName: ?[*:0]const u16,
lpName: ?[*:0]const u16,
lpDisplayName: ?[*:0]u16,
cchDisplayName: ?*u32,
lpLanguageId: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LogonUserA(
lpszUsername: ?[*:0]const u8,
lpszDomain: ?[*:0]const u8,
lpszPassword: ?[*:0]const u8,
dwLogonType: LOGON32_LOGON,
dwLogonProvider: LOGON32_PROVIDER,
phToken: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LogonUserW(
lpszUsername: ?[*:0]const u16,
lpszDomain: ?[*:0]const u16,
lpszPassword: ?[*:0]const u16,
dwLogonType: LOGON32_LOGON,
dwLogonProvider: LOGON32_PROVIDER,
phToken: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LogonUserExA(
lpszUsername: ?[*:0]const u8,
lpszDomain: ?[*:0]const u8,
lpszPassword: ?[*:0]const u8,
dwLogonType: LOGON32_LOGON,
dwLogonProvider: LOGON32_PROVIDER,
phToken: ?*?HANDLE,
ppLogonSid: ?*?PSID,
// TODO: what to do with BytesParamIndex 8?
ppProfileBuffer: ?*?*anyopaque,
pdwProfileLength: ?*u32,
pQuotaLimits: ?*QUOTA_LIMITS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LogonUserExW(
lpszUsername: ?[*:0]const u16,
lpszDomain: ?[*:0]const u16,
lpszPassword: ?[*:0]const u16,
dwLogonType: LOGON32_LOGON,
dwLogonProvider: LOGON32_PROVIDER,
phToken: ?*?HANDLE,
ppLogonSid: ?*?PSID,
// TODO: what to do with BytesParamIndex 8?
ppProfileBuffer: ?*?*anyopaque,
pdwProfileLength: ?*u32,
pQuotaLimits: ?*QUOTA_LIMITS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "ntdll" fn RtlConvertSidToUnicodeString(
UnicodeString: ?*UNICODE_STRING,
Sid: ?PSID,
AllocateDestinationString: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (18)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("zig.zig").unicode_mode) {
.ansi => struct {
pub const AccessCheckAndAuditAlarm = thismodule.AccessCheckAndAuditAlarmA;
pub const AccessCheckByTypeAndAuditAlarm = thismodule.AccessCheckByTypeAndAuditAlarmA;
pub const AccessCheckByTypeResultListAndAuditAlarm = thismodule.AccessCheckByTypeResultListAndAuditAlarmA;
pub const AccessCheckByTypeResultListAndAuditAlarmByHandle = thismodule.AccessCheckByTypeResultListAndAuditAlarmByHandleA;
pub const GetFileSecurity = thismodule.GetFileSecurityA;
pub const ObjectCloseAuditAlarm = thismodule.ObjectCloseAuditAlarmA;
pub const ObjectDeleteAuditAlarm = thismodule.ObjectDeleteAuditAlarmA;
pub const ObjectOpenAuditAlarm = thismodule.ObjectOpenAuditAlarmA;
pub const ObjectPrivilegeAuditAlarm = thismodule.ObjectPrivilegeAuditAlarmA;
pub const PrivilegedServiceAuditAlarm = thismodule.PrivilegedServiceAuditAlarmA;
pub const SetFileSecurity = thismodule.SetFileSecurityA;
pub const LookupAccountSid = thismodule.LookupAccountSidA;
pub const LookupAccountName = thismodule.LookupAccountNameA;
pub const LookupPrivilegeValue = thismodule.LookupPrivilegeValueA;
pub const LookupPrivilegeName = thismodule.LookupPrivilegeNameA;
pub const LookupPrivilegeDisplayName = thismodule.LookupPrivilegeDisplayNameA;
pub const LogonUser = thismodule.LogonUserA;
pub const LogonUserEx = thismodule.LogonUserExA;
},
.wide => struct {
pub const AccessCheckAndAuditAlarm = thismodule.AccessCheckAndAuditAlarmW;
pub const AccessCheckByTypeAndAuditAlarm = thismodule.AccessCheckByTypeAndAuditAlarmW;
pub const AccessCheckByTypeResultListAndAuditAlarm = thismodule.AccessCheckByTypeResultListAndAuditAlarmW;
pub const AccessCheckByTypeResultListAndAuditAlarmByHandle = thismodule.AccessCheckByTypeResultListAndAuditAlarmByHandleW;
pub const GetFileSecurity = thismodule.GetFileSecurityW;
pub const ObjectCloseAuditAlarm = thismodule.ObjectCloseAuditAlarmW;
pub const ObjectDeleteAuditAlarm = thismodule.ObjectDeleteAuditAlarmW;
pub const ObjectOpenAuditAlarm = thismodule.ObjectOpenAuditAlarmW;
pub const ObjectPrivilegeAuditAlarm = thismodule.ObjectPrivilegeAuditAlarmW;
pub const PrivilegedServiceAuditAlarm = thismodule.PrivilegedServiceAuditAlarmW;
pub const SetFileSecurity = thismodule.SetFileSecurityW;
pub const LookupAccountSid = thismodule.LookupAccountSidW;
pub const LookupAccountName = thismodule.LookupAccountNameW;
pub const LookupPrivilegeValue = thismodule.LookupPrivilegeValueW;
pub const LookupPrivilegeName = thismodule.LookupPrivilegeNameW;
pub const LookupPrivilegeDisplayName = thismodule.LookupPrivilegeDisplayNameW;
pub const LogonUser = thismodule.LogonUserW;
pub const LogonUserEx = thismodule.LogonUserExW;
},
.unspecified => if (@import("builtin").is_test) struct {
pub const AccessCheckAndAuditAlarm = *opaque{};
pub const AccessCheckByTypeAndAuditAlarm = *opaque{};
pub const AccessCheckByTypeResultListAndAuditAlarm = *opaque{};
pub const AccessCheckByTypeResultListAndAuditAlarmByHandle = *opaque{};
pub const GetFileSecurity = *opaque{};
pub const ObjectCloseAuditAlarm = *opaque{};
pub const ObjectDeleteAuditAlarm = *opaque{};
pub const ObjectOpenAuditAlarm = *opaque{};
pub const ObjectPrivilegeAuditAlarm = *opaque{};
pub const PrivilegedServiceAuditAlarm = *opaque{};
pub const SetFileSecurity = *opaque{};
pub const LookupAccountSid = *opaque{};
pub const LookupAccountName = *opaque{};
pub const LookupPrivilegeValue = *opaque{};
pub const LookupPrivilegeName = *opaque{};
pub const LookupPrivilegeDisplayName = *opaque{};
pub const LogonUser = *opaque{};
pub const LogonUserEx = *opaque{};
} else struct {
pub const AccessCheckAndAuditAlarm = @compileError("'AccessCheckAndAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const AccessCheckByTypeAndAuditAlarm = @compileError("'AccessCheckByTypeAndAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const AccessCheckByTypeResultListAndAuditAlarm = @compileError("'AccessCheckByTypeResultListAndAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const AccessCheckByTypeResultListAndAuditAlarmByHandle = @compileError("'AccessCheckByTypeResultListAndAuditAlarmByHandle' requires that UNICODE be set to true or false in the root module");
pub const GetFileSecurity = @compileError("'GetFileSecurity' requires that UNICODE be set to true or false in the root module");
pub const ObjectCloseAuditAlarm = @compileError("'ObjectCloseAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const ObjectDeleteAuditAlarm = @compileError("'ObjectDeleteAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const ObjectOpenAuditAlarm = @compileError("'ObjectOpenAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const ObjectPrivilegeAuditAlarm = @compileError("'ObjectPrivilegeAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const PrivilegedServiceAuditAlarm = @compileError("'PrivilegedServiceAuditAlarm' requires that UNICODE be set to true or false in the root module");
pub const SetFileSecurity = @compileError("'SetFileSecurity' requires that UNICODE be set to true or false in the root module");
pub const LookupAccountSid = @compileError("'LookupAccountSid' requires that UNICODE be set to true or false in the root module");
pub const LookupAccountName = @compileError("'LookupAccountName' requires that UNICODE be set to true or false in the root module");
pub const LookupPrivilegeValue = @compileError("'LookupPrivilegeValue' requires that UNICODE be set to true or false in the root module");
pub const LookupPrivilegeName = @compileError("'LookupPrivilegeName' requires that UNICODE be set to true or false in the root module");
pub const LookupPrivilegeDisplayName = @compileError("'LookupPrivilegeDisplayName' requires that UNICODE be set to true or false in the root module");
pub const LogonUser = @compileError("'LogonUser' requires that UNICODE be set to true or false in the root module");
pub const LogonUserEx = @compileError("'LogonUserEx' requires that UNICODE be set to true or false in the root module");
},
};
//--------------------------------------------------------------------------------
// Section: Imports (13)
//--------------------------------------------------------------------------------
const Guid = @import("zig.zig").Guid;
const BOOL = @import("foundation.zig").BOOL;
const BOOLEAN = @import("foundation.zig").BOOLEAN;
const CHAR = @import("foundation.zig").CHAR;
const FILETIME = @import("foundation.zig").FILETIME;
const HANDLE = @import("foundation.zig").HANDLE;
const LARGE_INTEGER = @import("foundation.zig").LARGE_INTEGER;
const LUID = @import("foundation.zig").LUID;
const NTSTATUS = @import("foundation.zig").NTSTATUS;
const PSID = @import("foundation.zig").PSID;
const PSTR = @import("foundation.zig").PSTR;
const PWSTR = @import("foundation.zig").PWSTR;
const UNICODE_STRING = @import("foundation.zig").UNICODE_STRING;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "PLSA_AP_CALL_PACKAGE_UNTRUSTED")) { _ = PLSA_AP_CALL_PACKAGE_UNTRUSTED; }
if (@hasDecl(@This(), "SEC_THREAD_START")) { _ = SEC_THREAD_START; }
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}
//--------------------------------------------------------------------------------
// Section: SubModules (16)
//--------------------------------------------------------------------------------
pub const app_locker = @import("security/app_locker.zig");
pub const authentication = @import("security/authentication.zig");
pub const authorization = @import("security/authorization.zig");
pub const configuration_snapin = @import("security/configuration_snapin.zig");
pub const credentials = @import("security/credentials.zig");
pub const cryptography = @import("security/cryptography.zig");
pub const diagnostic_data_query = @import("security/diagnostic_data_query.zig");
pub const directory_services = @import("security/directory_services.zig");
pub const enterprise_data = @import("security/enterprise_data.zig");
pub const extensible_authentication_protocol = @import("security/extensible_authentication_protocol.zig");
pub const isolation = @import("security/isolation.zig");
pub const license_protection = @import("security/license_protection.zig");
pub const network_access_protection = @import("security/network_access_protection.zig");
pub const tpm = @import("security/tpm.zig");
pub const win_trust = @import("security/win_trust.zig");
pub const win_wlx = @import("security/win_wlx.zig");