zigwin32/win32/security/app_locker.zig

339 lines
13 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (41)
//--------------------------------------------------------------------------------
pub const SAFER_SCOPEID_MACHINE = @as(u32, 1);
pub const SAFER_SCOPEID_USER = @as(u32, 2);
pub const SAFER_LEVELID_FULLYTRUSTED = @as(u32, 262144);
pub const SAFER_LEVELID_NORMALUSER = @as(u32, 131072);
pub const SAFER_LEVELID_CONSTRAINED = @as(u32, 65536);
pub const SAFER_LEVELID_UNTRUSTED = @as(u32, 4096);
pub const SAFER_LEVELID_DISALLOWED = @as(u32, 0);
pub const SAFER_LEVEL_OPEN = @as(u32, 1);
pub const SAFER_MAX_FRIENDLYNAME_SIZE = @as(u32, 256);
pub const SAFER_MAX_DESCRIPTION_SIZE = @as(u32, 256);
pub const SAFER_MAX_HASH_SIZE = @as(u32, 64);
pub const SAFER_CRITERIA_IMAGEPATH = @as(u32, 1);
pub const SAFER_CRITERIA_NOSIGNEDHASH = @as(u32, 2);
pub const SAFER_CRITERIA_IMAGEHASH = @as(u32, 4);
pub const SAFER_CRITERIA_AUTHENTICODE = @as(u32, 8);
pub const SAFER_CRITERIA_URLZONE = @as(u32, 16);
pub const SAFER_CRITERIA_APPX_PACKAGE = @as(u32, 32);
pub const SAFER_CRITERIA_IMAGEPATH_NT = @as(u32, 4096);
pub const SAFER_POLICY_JOBID_MASK = @as(u32, 4278190080);
pub const SAFER_POLICY_JOBID_CONSTRAINED = @as(u32, 67108864);
pub const SAFER_POLICY_JOBID_UNTRUSTED = @as(u32, 50331648);
pub const SAFER_POLICY_ONLY_EXES = @as(u32, 65536);
pub const SAFER_POLICY_SANDBOX_INERT = @as(u32, 131072);
pub const SAFER_POLICY_HASH_DUPLICATE = @as(u32, 262144);
pub const SAFER_POLICY_ONLY_AUDIT = @as(u32, 4096);
pub const SAFER_POLICY_BLOCK_CLIENT_UI = @as(u32, 8192);
pub const SAFER_POLICY_UIFLAGS_MASK = @as(u32, 255);
pub const SAFER_POLICY_UIFLAGS_INFORMATION_PROMPT = @as(u32, 1);
pub const SAFER_POLICY_UIFLAGS_OPTION_PROMPT = @as(u32, 2);
pub const SAFER_POLICY_UIFLAGS_HIDDEN = @as(u32, 4);
pub const SRP_POLICY_EXE = "EXE";
pub const SRP_POLICY_DLL = "DLL";
pub const SRP_POLICY_MSI = "MSI";
pub const SRP_POLICY_SCRIPT = "SCRIPT";
pub const SRP_POLICY_SHELL = "SHELL";
pub const SRP_POLICY_NOV2 = "IGNORESRPV2";
pub const SRP_POLICY_APPX = "APPX";
pub const SRP_POLICY_WLDPMSI = "WLDPMSI";
pub const SRP_POLICY_WLDPSCRIPT = "WLDPSCRIPT";
pub const SRP_POLICY_WLDPCONFIGCI = "WLDPCONFIGCI";
pub const SRP_POLICY_MANAGEDINSTALLER = "MANAGEDINSTALLER";
//--------------------------------------------------------------------------------
// Section: Types (11)
//--------------------------------------------------------------------------------
pub const SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS = enum(u32) {
NULL_IF_EQUAL = 1,
COMPARE_ONLY = 2,
MAKE_INERT = 4,
WANT_FLAGS = 8,
_,
pub fn initFlags(o: struct {
NULL_IF_EQUAL: u1 = 0,
COMPARE_ONLY: u1 = 0,
MAKE_INERT: u1 = 0,
WANT_FLAGS: u1 = 0,
}) SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS {
return @as(SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS, @enumFromInt(
(if (o.NULL_IF_EQUAL == 1) @intFromEnum(SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.NULL_IF_EQUAL) else 0)
| (if (o.COMPARE_ONLY == 1) @intFromEnum(SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.COMPARE_ONLY) else 0)
| (if (o.MAKE_INERT == 1) @intFromEnum(SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.MAKE_INERT) else 0)
| (if (o.WANT_FLAGS == 1) @intFromEnum(SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.WANT_FLAGS) else 0)
));
}
};
pub const SAFER_TOKEN_NULL_IF_EQUAL = SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.NULL_IF_EQUAL;
pub const SAFER_TOKEN_COMPARE_ONLY = SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.COMPARE_ONLY;
pub const SAFER_TOKEN_MAKE_INERT = SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.MAKE_INERT;
pub const SAFER_TOKEN_WANT_FLAGS = SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS.WANT_FLAGS;
pub const SAFER_CODE_PROPERTIES_V1 = extern struct {
cbSize: u32,
dwCheckFlags: u32,
ImagePath: ?[*:0]const u16,
hImageFileHandle: ?HANDLE,
UrlZoneId: u32,
ImageHash: [64]u8,
dwImageHashSize: u32,
ImageSize: LARGE_INTEGER,
HashAlgorithm: u32,
pByteBlock: ?*u8,
hWndParent: ?HWND,
dwWVTUIChoice: u32,
};
pub const SAFER_CODE_PROPERTIES_V2 = extern struct {
cbSize: u32,
dwCheckFlags: u32,
ImagePath: ?[*:0]const u16,
hImageFileHandle: ?HANDLE,
UrlZoneId: u32,
ImageHash: [64]u8,
dwImageHashSize: u32,
ImageSize: LARGE_INTEGER,
HashAlgorithm: u32,
pByteBlock: ?*u8,
hWndParent: ?HWND,
dwWVTUIChoice: u32,
PackageMoniker: ?[*:0]const u16,
PackagePublisher: ?[*:0]const u16,
PackageName: ?[*:0]const u16,
PackageVersion: u64,
PackageIsFramework: BOOL,
};
pub const SAFER_POLICY_INFO_CLASS = enum(i32) {
LevelList = 1,
EnableTransparentEnforcement = 2,
DefaultLevel = 3,
EvaluateUserScope = 4,
ScopeFlags = 5,
DefaultLevelFlags = 6,
AuthenticodeEnabled = 7,
};
pub const SaferPolicyLevelList = SAFER_POLICY_INFO_CLASS.LevelList;
pub const SaferPolicyEnableTransparentEnforcement = SAFER_POLICY_INFO_CLASS.EnableTransparentEnforcement;
pub const SaferPolicyDefaultLevel = SAFER_POLICY_INFO_CLASS.DefaultLevel;
pub const SaferPolicyEvaluateUserScope = SAFER_POLICY_INFO_CLASS.EvaluateUserScope;
pub const SaferPolicyScopeFlags = SAFER_POLICY_INFO_CLASS.ScopeFlags;
pub const SaferPolicyDefaultLevelFlags = SAFER_POLICY_INFO_CLASS.DefaultLevelFlags;
pub const SaferPolicyAuthenticodeEnabled = SAFER_POLICY_INFO_CLASS.AuthenticodeEnabled;
pub const SAFER_OBJECT_INFO_CLASS = enum(i32) {
LevelId = 1,
ScopeId = 2,
FriendlyName = 3,
Description = 4,
Builtin = 5,
Disallowed = 6,
DisableMaxPrivilege = 7,
InvertDeletedPrivileges = 8,
DeletedPrivileges = 9,
DefaultOwner = 10,
SidsToDisable = 11,
RestrictedSidsInverted = 12,
RestrictedSidsAdded = 13,
AllIdentificationGuids = 14,
SingleIdentification = 15,
ExtendedError = 16,
};
pub const SaferObjectLevelId = SAFER_OBJECT_INFO_CLASS.LevelId;
pub const SaferObjectScopeId = SAFER_OBJECT_INFO_CLASS.ScopeId;
pub const SaferObjectFriendlyName = SAFER_OBJECT_INFO_CLASS.FriendlyName;
pub const SaferObjectDescription = SAFER_OBJECT_INFO_CLASS.Description;
pub const SaferObjectBuiltin = SAFER_OBJECT_INFO_CLASS.Builtin;
pub const SaferObjectDisallowed = SAFER_OBJECT_INFO_CLASS.Disallowed;
pub const SaferObjectDisableMaxPrivilege = SAFER_OBJECT_INFO_CLASS.DisableMaxPrivilege;
pub const SaferObjectInvertDeletedPrivileges = SAFER_OBJECT_INFO_CLASS.InvertDeletedPrivileges;
pub const SaferObjectDeletedPrivileges = SAFER_OBJECT_INFO_CLASS.DeletedPrivileges;
pub const SaferObjectDefaultOwner = SAFER_OBJECT_INFO_CLASS.DefaultOwner;
pub const SaferObjectSidsToDisable = SAFER_OBJECT_INFO_CLASS.SidsToDisable;
pub const SaferObjectRestrictedSidsInverted = SAFER_OBJECT_INFO_CLASS.RestrictedSidsInverted;
pub const SaferObjectRestrictedSidsAdded = SAFER_OBJECT_INFO_CLASS.RestrictedSidsAdded;
pub const SaferObjectAllIdentificationGuids = SAFER_OBJECT_INFO_CLASS.AllIdentificationGuids;
pub const SaferObjectSingleIdentification = SAFER_OBJECT_INFO_CLASS.SingleIdentification;
pub const SaferObjectExtendedError = SAFER_OBJECT_INFO_CLASS.ExtendedError;
pub const SAFER_IDENTIFICATION_TYPES = enum(i32) {
Default = 0,
TypeImageName = 1,
TypeImageHash = 2,
TypeUrlZone = 3,
TypeCertificate = 4,
};
pub const SaferIdentityDefault = SAFER_IDENTIFICATION_TYPES.Default;
pub const SaferIdentityTypeImageName = SAFER_IDENTIFICATION_TYPES.TypeImageName;
pub const SaferIdentityTypeImageHash = SAFER_IDENTIFICATION_TYPES.TypeImageHash;
pub const SaferIdentityTypeUrlZone = SAFER_IDENTIFICATION_TYPES.TypeUrlZone;
pub const SaferIdentityTypeCertificate = SAFER_IDENTIFICATION_TYPES.TypeCertificate;
pub const SAFER_IDENTIFICATION_HEADER = extern struct {
dwIdentificationType: SAFER_IDENTIFICATION_TYPES,
cbStructSize: u32,
IdentificationGuid: Guid,
lastModified: FILETIME,
};
pub const SAFER_PATHNAME_IDENTIFICATION = extern struct {
header: SAFER_IDENTIFICATION_HEADER,
Description: [256]u16,
ImageName: ?[*]u16,
dwSaferFlags: u32,
};
pub const SAFER_HASH_IDENTIFICATION = extern struct {
header: SAFER_IDENTIFICATION_HEADER,
Description: [256]u16,
FriendlyName: [256]u16,
HashSize: u32,
ImageHash: [64]u8,
HashAlgorithm: u32,
ImageSize: LARGE_INTEGER,
dwSaferFlags: u32,
};
pub const SAFER_HASH_IDENTIFICATION2 = extern struct {
hashIdentification: SAFER_HASH_IDENTIFICATION,
HashSize: u32,
ImageHash: [64]u8,
HashAlgorithm: u32,
};
pub const SAFER_URLZONE_IDENTIFICATION = extern struct {
header: SAFER_IDENTIFICATION_HEADER,
UrlZoneId: u32,
dwSaferFlags: u32,
};
//--------------------------------------------------------------------------------
// Section: Functions (10)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferGetPolicyInformation(
dwScopeId: u32,
SaferPolicyInfoClass: SAFER_POLICY_INFO_CLASS,
InfoBufferSize: u32,
// TODO: what to do with BytesParamIndex 2?
InfoBuffer: ?*anyopaque,
InfoBufferRetSize: ?*u32,
lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferSetPolicyInformation(
dwScopeId: u32,
SaferPolicyInfoClass: SAFER_POLICY_INFO_CLASS,
InfoBufferSize: u32,
// TODO: what to do with BytesParamIndex 2?
InfoBuffer: ?*anyopaque,
lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferCreateLevel(
dwScopeId: u32,
dwLevelId: u32,
OpenFlags: u32,
pLevelHandle: ?*SAFER_LEVEL_HANDLE,
lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferCloseLevel(
hLevelHandle: SAFER_LEVEL_HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferIdentifyLevel(
dwNumProperties: u32,
pCodeProperties: ?[*]SAFER_CODE_PROPERTIES_V2,
pLevelHandle: ?*SAFER_LEVEL_HANDLE,
lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferComputeTokenFromLevel(
LevelHandle: SAFER_LEVEL_HANDLE,
InAccessToken: ?HANDLE,
OutAccessToken: ?*?HANDLE,
dwFlags: SAFER_COMPUTE_TOKEN_FROM_LEVEL_FLAGS,
lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferGetLevelInformation(
LevelHandle: SAFER_LEVEL_HANDLE,
dwInfoType: SAFER_OBJECT_INFO_CLASS,
// TODO: what to do with BytesParamIndex 3?
lpQueryBuffer: ?*anyopaque,
dwInBufferSize: u32,
lpdwOutBufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferSetLevelInformation(
LevelHandle: SAFER_LEVEL_HANDLE,
dwInfoType: SAFER_OBJECT_INFO_CLASS,
// TODO: what to do with BytesParamIndex 3?
lpQueryBuffer: ?*anyopaque,
dwInBufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferRecordEventLogEntry(
hLevel: SAFER_LEVEL_HANDLE,
szTargetPath: ?[*:0]const u16,
lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SaferiIsExecutableFileType(
szFullPathname: ?[*:0]const u16,
bFromShellExecute: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) BOOL;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
},
.wide => struct {
},
.unspecified => if (@import("builtin").is_test) struct {
} else struct {
},
};
//--------------------------------------------------------------------------------
// Section: Imports (9)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const FILETIME = @import("../foundation.zig").FILETIME;
const HANDLE = @import("../foundation.zig").HANDLE;
const HWND = @import("../foundation.zig").HWND;
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
const PWSTR = @import("../foundation.zig").PWSTR;
const SAFER_LEVEL_HANDLE = @import("../security.zig").SAFER_LEVEL_HANDLE;
test {
@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);
}
}