1 // Copyright © 2016-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 //! FFI bindings to psapi. 8 9 use shared::guiddef::GUID; 10 use shared::minwindef::{ 11 BOOL, BYTE, DWORD, LPBOOL, LPDWORD, LPVOID, PBOOL, PDWORD, PUCHAR, PULONG, UCHAR, ULONG 12 }; 13 use um::minwinbase::LPSECURITY_ATTRIBUTES; 14 use um::winnt::{ 15 ACL_INFORMATION_CLASS, AUDIT_EVENT_TYPE, BOOLEAN, HANDLE, LONG, LPCWSTR, LPWSTR, PACL, 16 PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, PCWSTR, PGENERIC_MAPPING, PHANDLE, PLUID, 17 PLUID_AND_ATTRIBUTES, POBJECT_TYPE_LIST, PPRIVILEGE_SET, PSECURITY_DESCRIPTOR, 18 PSECURITY_DESCRIPTOR_CONTROL, PSID, PSID_AND_ATTRIBUTES, PSID_IDENTIFIER_AUTHORITY, 19 PTOKEN_GROUPS, PTOKEN_PRIVILEGES, PVOID, SECURITY_DESCRIPTOR_CONTROL, 20 SECURITY_IMPERSONATION_LEVEL, SECURITY_INFORMATION, TOKEN_INFORMATION_CLASS, TOKEN_TYPE, 21 WELL_KNOWN_SID_TYPE 22 }; 23 24 extern "system" { AccessCheck( pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, ) -> BOOL25 pub fn AccessCheck( 26 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 27 ClientToken: HANDLE, 28 DesiredAccess: DWORD, 29 GenericMapping: PGENERIC_MAPPING, 30 PrivilegeSet: PPRIVILEGE_SET, 31 PrivilegeSetLength: LPDWORD, 32 GrantedAccess: LPDWORD, 33 AccessStatus: LPBOOL, 34 ) -> BOOL; AccessCheckAndAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL, ) -> BOOL35 pub fn AccessCheckAndAuditAlarmW( 36 SubsystemName: LPCWSTR, 37 HandleId: LPVOID, 38 ObjectTypeName: LPWSTR, 39 ObjectName: LPWSTR, 40 SecurityDescriptor: PSECURITY_DESCRIPTOR, 41 DesiredAccess: DWORD, 42 GenericMapping: PGENERIC_MAPPING, 43 ObjectCreation: BOOL, 44 GrantedAccess: LPDWORD, 45 AccessStatus: LPBOOL, 46 pfGenerateOnClose: LPBOOL, 47 ) -> BOOL; AccessCheckByType( pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, ClientToken: HANDLE, DesiredAccess: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, ) -> BOOL48 pub fn AccessCheckByType( 49 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 50 PrincipalSelfSid: PSID, 51 ClientToken: HANDLE, 52 DesiredAccess: DWORD, 53 ObjectTypeList: POBJECT_TYPE_LIST, 54 ObjectTypeListLength: DWORD, 55 GenericMapping: PGENERIC_MAPPING, 56 PrivilegeSet: PPRIVILEGE_SET, 57 PrivilegeSetLength: LPDWORD, 58 GrantedAccess: LPDWORD, 59 AccessStatus: LPBOOL, 60 ) -> BOOL; AccessCheckByTypeResultList( pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, ClientToken: HANDLE, DesiredAccess: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, ) -> BOOL61 pub fn AccessCheckByTypeResultList( 62 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 63 PrincipalSelfSid: PSID, 64 ClientToken: HANDLE, 65 DesiredAccess: DWORD, 66 ObjectTypeList: POBJECT_TYPE_LIST, 67 ObjectTypeListLength: DWORD, 68 GenericMapping: PGENERIC_MAPPING, 69 PrivilegeSet: PPRIVILEGE_SET, 70 PrivilegeSetLength: LPDWORD, 71 GrantedAccessList: LPDWORD, 72 AccessStatusList: LPDWORD, 73 ) -> BOOL; AccessCheckByTypeAndAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPCWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL, ) -> BOOL74 pub fn AccessCheckByTypeAndAuditAlarmW( 75 SubsystemName: LPCWSTR, 76 HandleId: LPVOID, 77 ObjectTypeName: LPWSTR, 78 ObjectName: LPCWSTR, 79 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 80 PrincipalSelfSid: PSID, 81 DesiredAccess: DWORD, 82 AuditType: AUDIT_EVENT_TYPE, 83 Flags: DWORD, 84 ObjectTypeList: POBJECT_TYPE_LIST, 85 ObjectTypeListLength: DWORD, 86 GenericMapping: PGENERIC_MAPPING, 87 ObjectCreation: BOOL, 88 GrantedAccess: LPDWORD, 89 AccessStatus: LPBOOL, 90 pfGenerateOnClose: LPBOOL, 91 ) -> BOOL; AccessCheckByTypeResultListAndAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPCWSTR, ObjectName: LPCWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL, ) -> BOOL92 pub fn AccessCheckByTypeResultListAndAuditAlarmW( 93 SubsystemName: LPCWSTR, 94 HandleId: LPVOID, 95 ObjectTypeName: LPCWSTR, 96 ObjectName: LPCWSTR, 97 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 98 PrincipalSelfSid: PSID, 99 DesiredAccess: DWORD, 100 AuditType: AUDIT_EVENT_TYPE, 101 Flags: DWORD, 102 ObjectTypeList: POBJECT_TYPE_LIST, 103 ObjectTypeListLength: DWORD, 104 GenericMapping: PGENERIC_MAPPING, 105 ObjectCreation: BOOL, 106 GrantedAccess: LPDWORD, 107 AccessStatusList: LPDWORD, 108 pfGenerateOnClose: LPBOOL, 109 ) -> BOOL; AccessCheckByTypeResultListAndAuditAlarmByHandleW( SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, ObjectTypeName: LPCWSTR, ObjectName: LPCWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL, ) -> BOOL110 pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleW( 111 SubsystemName: LPCWSTR, 112 HandleId: LPVOID, 113 ClientToken: HANDLE, 114 ObjectTypeName: LPCWSTR, 115 ObjectName: LPCWSTR, 116 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 117 PrincipalSelfSid: PSID, 118 DesiredAccess: DWORD, 119 AuditType: AUDIT_EVENT_TYPE, 120 Flags: DWORD, 121 ObjectTypeList: POBJECT_TYPE_LIST, 122 ObjectTypeListLength: DWORD, 123 GenericMapping: PGENERIC_MAPPING, 124 ObjectCreation: BOOL, 125 GrantedAccess: LPDWORD, 126 AccessStatusList: LPDWORD, 127 pfGenerateOnClose: LPBOOL, 128 ) -> BOOL; AddAccessAllowedAce( pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL129 pub fn AddAccessAllowedAce( 130 pAcl: PACL, 131 dwAceRevision: DWORD, 132 AccessMask: DWORD, 133 pSid: PSID, 134 ) -> BOOL; AddAccessAllowedAceEx( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL135 pub fn AddAccessAllowedAceEx( 136 pAcl: PACL, 137 dwAceRevision: DWORD, 138 AceFlags: DWORD, 139 AccessMask: DWORD, 140 pSid: PSID, 141 ) -> BOOL; AddAccessAllowedObjectAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: *mut GUID, InheritedObjectTypeGuid: *mut GUID, pSid: PSID, ) -> BOOL142 pub fn AddAccessAllowedObjectAce( 143 pAcl: PACL, 144 dwAceRevision: DWORD, 145 AceFlags: DWORD, 146 AccessMask: DWORD, 147 ObjectTypeGuid: *mut GUID, 148 InheritedObjectTypeGuid: *mut GUID, 149 pSid: PSID, 150 ) -> BOOL; AddAccessDeniedAce( pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL151 pub fn AddAccessDeniedAce( 152 pAcl: PACL, 153 dwAceRevision: DWORD, 154 AccessMask: DWORD, 155 pSid: PSID, 156 ) -> BOOL; AddAccessDeniedAceEx( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL157 pub fn AddAccessDeniedAceEx( 158 pAcl: PACL, 159 dwAceRevision: DWORD, 160 AceFlags: DWORD, 161 AccessMask: DWORD, 162 pSid: PSID, 163 ) -> BOOL; AddAccessDeniedObjectAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: *mut GUID, InheritedObjectTypeGuid: *mut GUID, pSid: PSID, ) -> BOOL164 pub fn AddAccessDeniedObjectAce( 165 pAcl: PACL, 166 dwAceRevision: DWORD, 167 AceFlags: DWORD, 168 AccessMask: DWORD, 169 ObjectTypeGuid: *mut GUID, 170 InheritedObjectTypeGuid: *mut GUID, 171 pSid: PSID, 172 ) -> BOOL; AddAce( pAcl: PACL, dwAceRevision: DWORD, dwStartingAceIndex: DWORD, pAceList: LPVOID, nAceListLength: DWORD, ) -> BOOL173 pub fn AddAce( 174 pAcl: PACL, 175 dwAceRevision: DWORD, 176 dwStartingAceIndex: DWORD, 177 pAceList: LPVOID, 178 nAceListLength: DWORD, 179 ) -> BOOL; AddAuditAccessAce( pAcl: PACL, dwAceRevision: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL, ) -> BOOL180 pub fn AddAuditAccessAce( 181 pAcl: PACL, 182 dwAceRevision: DWORD, 183 dwAccessMask: DWORD, 184 pSid: PSID, 185 bAuditSuccess: BOOL, 186 bAuditFailure: BOOL, 187 ) -> BOOL; AddAuditAccessAceEx( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL, ) -> BOOL188 pub fn AddAuditAccessAceEx( 189 pAcl: PACL, 190 dwAceRevision: DWORD, 191 AceFlags: DWORD, 192 dwAccessMask: DWORD, 193 pSid: PSID, 194 bAuditSuccess: BOOL, 195 bAuditFailure: BOOL, 196 ) -> BOOL; AddAuditAccessObjectAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: *mut GUID, InheritedObjectTypeGuid: *mut GUID, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL, ) -> BOOL197 pub fn AddAuditAccessObjectAce( 198 pAcl: PACL, 199 dwAceRevision: DWORD, 200 AceFlags: DWORD, 201 AccessMask: DWORD, 202 ObjectTypeGuid: *mut GUID, 203 InheritedObjectTypeGuid: *mut GUID, 204 pSid: PSID, 205 bAuditSuccess: BOOL, 206 bAuditFailure: BOOL, 207 ) -> BOOL; AddMandatoryAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, MandatoryPolicy: DWORD, pLabelSid: PSID, ) -> BOOL208 pub fn AddMandatoryAce( 209 pAcl: PACL, 210 dwAceRevision: DWORD, 211 AceFlags: DWORD, 212 MandatoryPolicy: DWORD, 213 pLabelSid: PSID, 214 ) -> BOOL; AddResourceAttributeAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, pReturnLength: PDWORD, ) -> BOOL215 pub fn AddResourceAttributeAce( 216 pAcl: PACL, 217 dwAceRevision: DWORD, 218 AceFlags: DWORD, 219 AccessMask: DWORD, 220 pSid: PSID, 221 pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, 222 pReturnLength: PDWORD, 223 ) -> BOOL; AddScopedPolicyIDAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL224 pub fn AddScopedPolicyIDAce( 225 pAcl: PACL, 226 dwAceRevision: DWORD, 227 AceFlags: DWORD, 228 AccessMask: DWORD, 229 pSid: PSID, 230 ) -> BOOL; AdjustTokenGroups( TokenHandle: HANDLE, ResetToDefault: BOOL, NewState: PTOKEN_GROUPS, BufferLength: DWORD, PreviousState: PTOKEN_GROUPS, ReturnLength: PDWORD, ) -> BOOL231 pub fn AdjustTokenGroups( 232 TokenHandle: HANDLE, 233 ResetToDefault: BOOL, 234 NewState: PTOKEN_GROUPS, 235 BufferLength: DWORD, 236 PreviousState: PTOKEN_GROUPS, 237 ReturnLength: PDWORD, 238 ) -> BOOL; AdjustTokenPrivileges( TokenHandle: HANDLE, DisableAllPrivileges: BOOL, NewState: PTOKEN_PRIVILEGES, BufferLength: DWORD, PreviousState: PTOKEN_PRIVILEGES, ReturnLength: PDWORD, ) -> BOOL239 pub fn AdjustTokenPrivileges( 240 TokenHandle: HANDLE, 241 DisableAllPrivileges: BOOL, 242 NewState: PTOKEN_PRIVILEGES, 243 BufferLength: DWORD, 244 PreviousState: PTOKEN_PRIVILEGES, 245 ReturnLength: PDWORD, 246 ) -> BOOL; AllocateAndInitializeSid( pIdentifierAuthoirity: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE, dwSubAuthority0: DWORD, dwSubAuthority1: DWORD, dwSubAuthority2: DWORD, dwSubAuthority3: DWORD, dwSubAuthority4: DWORD, dwSubAuthority5: DWORD, dwSubAuthority6: DWORD, dwSubAuthority7: DWORD, pSid: *mut PSID, ) -> BOOL247 pub fn AllocateAndInitializeSid( 248 pIdentifierAuthoirity: PSID_IDENTIFIER_AUTHORITY, 249 nSubAuthorityCount: BYTE, 250 dwSubAuthority0: DWORD, 251 dwSubAuthority1: DWORD, 252 dwSubAuthority2: DWORD, 253 dwSubAuthority3: DWORD, 254 dwSubAuthority4: DWORD, 255 dwSubAuthority5: DWORD, 256 dwSubAuthority6: DWORD, 257 dwSubAuthority7: DWORD, 258 pSid: *mut PSID, 259 ) -> BOOL; AllocateLocallyUniqueId( Luid: PLUID, ) -> BOOL260 pub fn AllocateLocallyUniqueId( 261 Luid: PLUID, 262 ) -> BOOL; AreAllAccessesGranted( GrantedAccess: DWORD, DesiredAccess: DWORD, ) -> BOOL263 pub fn AreAllAccessesGranted( 264 GrantedAccess: DWORD, 265 DesiredAccess: DWORD, 266 ) -> BOOL; AreAnyAccessesGranted( GrantedAccess: DWORD, DesiredAccess: DWORD, ) -> BOOL267 pub fn AreAnyAccessesGranted( 268 GrantedAccess: DWORD, 269 DesiredAccess: DWORD, 270 ) -> BOOL; CheckTokenMembership( TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL, ) -> BOOL271 pub fn CheckTokenMembership( 272 TokenHandle: HANDLE, 273 SidToCheck: PSID, 274 IsMember: PBOOL, 275 ) -> BOOL; CheckTokenCapability( TokenHandle: HANDLE, CapabilitySidToCheck: PSID, HasCapability: PBOOL, ) -> BOOL276 pub fn CheckTokenCapability( 277 TokenHandle: HANDLE, 278 CapabilitySidToCheck: PSID, 279 HasCapability: PBOOL, 280 ) -> BOOL; GetAppContainerAce( Acl: PACL, StartingAceIndex: DWORD, AppContainerAce: *mut PVOID, AppContainerAceIndex: *mut DWORD, ) -> BOOL281 pub fn GetAppContainerAce( 282 Acl: PACL, 283 StartingAceIndex: DWORD, 284 AppContainerAce: *mut PVOID, 285 AppContainerAceIndex: *mut DWORD, 286 ) -> BOOL; CheckTokenMembershipEx( TokenHandle: HANDLE, SidToCheck: PSID, Flags: DWORD, IsMember: PBOOL, ) -> BOOL287 pub fn CheckTokenMembershipEx( 288 TokenHandle: HANDLE, 289 SidToCheck: PSID, 290 Flags: DWORD, 291 IsMember: PBOOL, 292 ) -> BOOL; ConvertToAutoInheritPrivateObjectSecurity( ParentDescriptor: PSECURITY_DESCRIPTOR, CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, ObjectType: *mut GUID, IsDirectoryObject: BOOLEAN, GenericMapping: PGENERIC_MAPPING, ) -> BOOL293 pub fn ConvertToAutoInheritPrivateObjectSecurity( 294 ParentDescriptor: PSECURITY_DESCRIPTOR, 295 CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, 296 NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 297 ObjectType: *mut GUID, 298 IsDirectoryObject: BOOLEAN, 299 GenericMapping: PGENERIC_MAPPING, 300 ) -> BOOL; CopySid( nDestinationSidLength: DWORD, pDestinationSid: PSID, pSourceSid: PSID, ) -> BOOL301 pub fn CopySid( 302 nDestinationSidLength: DWORD, 303 pDestinationSid: PSID, 304 pSourceSid: PSID, 305 ) -> BOOL; CreatePrivateObjectSecurity( ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: *mut PSECURITY_DESCRIPTOR, IsDirectoryObject: BOOL, Token: HANDLE, GenericMapping: PGENERIC_MAPPING, ) -> BOOL306 pub fn CreatePrivateObjectSecurity( 307 ParentDescriptor: PSECURITY_DESCRIPTOR, 308 CreatorDescriptor: PSECURITY_DESCRIPTOR, 309 NewDescriptor: *mut PSECURITY_DESCRIPTOR, 310 IsDirectoryObject: BOOL, 311 Token: HANDLE, 312 GenericMapping: PGENERIC_MAPPING, 313 ) -> BOOL; CreatePrivateObjectSecurityEx( ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, ObjectType: *mut GUID, IsContainerObject: BOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING, ) -> BOOL314 pub fn CreatePrivateObjectSecurityEx( 315 ParentDescriptor: PSECURITY_DESCRIPTOR, 316 CreatorDescriptor: PSECURITY_DESCRIPTOR, 317 NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 318 ObjectType: *mut GUID, 319 IsContainerObject: BOOL, 320 AutoInheritFlags: ULONG, 321 Token: HANDLE, 322 GenericMapping: PGENERIC_MAPPING, 323 ) -> BOOL; CreatePrivateObjectSecurityWithMultipleInheritance( ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, ObjectTypes: *mut *mut GUID, GuidCount: ULONG, IsContainerObject: BOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING, ) -> BOOL324 pub fn CreatePrivateObjectSecurityWithMultipleInheritance( 325 ParentDescriptor: PSECURITY_DESCRIPTOR, 326 CreatorDescriptor: PSECURITY_DESCRIPTOR, 327 NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 328 ObjectTypes: *mut *mut GUID, 329 GuidCount: ULONG, 330 IsContainerObject: BOOL, 331 AutoInheritFlags: ULONG, 332 Token: HANDLE, 333 GenericMapping: PGENERIC_MAPPING, 334 ) -> BOOL; CreateRestrictedToken( ExistingTokenHandle: HANDLE, Flags: DWORD, DisableSidCount: DWORD, SidsToDisable: PSID_AND_ATTRIBUTES, DeletePrivilegeCount: DWORD, PrivilegesToDelete: PLUID_AND_ATTRIBUTES, RestrictedSidCount: DWORD, SidsToRestrict: PSID_AND_ATTRIBUTES, NewTokenHandle: PHANDLE, ) -> BOOL335 pub fn CreateRestrictedToken( 336 ExistingTokenHandle: HANDLE, 337 Flags: DWORD, 338 DisableSidCount: DWORD, 339 SidsToDisable: PSID_AND_ATTRIBUTES, 340 DeletePrivilegeCount: DWORD, 341 PrivilegesToDelete: PLUID_AND_ATTRIBUTES, 342 RestrictedSidCount: DWORD, 343 SidsToRestrict: PSID_AND_ATTRIBUTES, 344 NewTokenHandle: PHANDLE, 345 ) -> BOOL; CreateWellKnownSid( WellKnownSidType: WELL_KNOWN_SID_TYPE, DomainSid: PSID, pSid: PSID, cbSid: *mut DWORD, ) -> BOOL346 pub fn CreateWellKnownSid( 347 WellKnownSidType: WELL_KNOWN_SID_TYPE, 348 DomainSid: PSID, 349 pSid: PSID, 350 cbSid: *mut DWORD, 351 ) -> BOOL; EqualDomainSid( pSid1: PSID, pSid2: PSID, pfEqual: *mut BOOL, ) -> BOOL352 pub fn EqualDomainSid( 353 pSid1: PSID, 354 pSid2: PSID, 355 pfEqual: *mut BOOL, 356 ) -> BOOL; DeleteAce( pAcl: PACL, dwAceIndex: DWORD, ) -> BOOL357 pub fn DeleteAce( 358 pAcl: PACL, 359 dwAceIndex: DWORD, 360 ) -> BOOL; DestroyPrivateObjectSecurity( ObjectDescriptor: *mut PSECURITY_DESCRIPTOR, ) -> BOOL361 pub fn DestroyPrivateObjectSecurity( 362 ObjectDescriptor: *mut PSECURITY_DESCRIPTOR, 363 ) -> BOOL; DuplicateToken( ExistingTokenHandle: HANDLE, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, DuplicateTokenHandle: PHANDLE, ) -> BOOL364 pub fn DuplicateToken( 365 ExistingTokenHandle: HANDLE, 366 ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, 367 DuplicateTokenHandle: PHANDLE, 368 ) -> BOOL; DuplicateTokenEx( hExistingToken: HANDLE, dwDesiredAccess: DWORD, lpTokenAttributes: LPSECURITY_ATTRIBUTES, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, TokenType: TOKEN_TYPE, phNewToken: PHANDLE, ) -> BOOL369 pub fn DuplicateTokenEx( 370 hExistingToken: HANDLE, 371 dwDesiredAccess: DWORD, 372 lpTokenAttributes: LPSECURITY_ATTRIBUTES, 373 ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, 374 TokenType: TOKEN_TYPE, 375 phNewToken: PHANDLE, 376 ) -> BOOL; EqualPrefixSid( pSid1: PSID, pSid2: PSID, ) -> BOOL377 pub fn EqualPrefixSid( 378 pSid1: PSID, 379 pSid2: PSID, 380 ) -> BOOL; EqualSid( pSid1: PSID, pSid2: PSID, ) -> BOOL381 pub fn EqualSid( 382 pSid1: PSID, 383 pSid2: PSID, 384 ) -> BOOL; FindFirstFreeAce( pAcl: PACL, pAce: *mut LPVOID, ) -> BOOL385 pub fn FindFirstFreeAce( 386 pAcl: PACL, 387 pAce: *mut LPVOID, 388 ) -> BOOL; FreeSid( pSid: PSID ) -> PVOID389 pub fn FreeSid( 390 pSid: PSID 391 ) -> PVOID; GetAce( pAcl: PACL, dwAceIndex: DWORD, pAce: *mut LPVOID, ) -> BOOL392 pub fn GetAce( 393 pAcl: PACL, 394 dwAceIndex: DWORD, 395 pAce: *mut LPVOID, 396 ) -> BOOL; GetAclInformation( pAcl: PACL, pAclInformtion: LPVOID, nAclInformationLength: DWORD, dwAclInformationClass: ACL_INFORMATION_CLASS, ) -> BOOL397 pub fn GetAclInformation( 398 pAcl: PACL, 399 pAclInformtion: LPVOID, 400 nAclInformationLength: DWORD, 401 dwAclInformationClass: ACL_INFORMATION_CLASS, 402 ) -> BOOL; GetFileSecurityW( lpFileName: LPCWSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD, ) -> BOOL403 pub fn GetFileSecurityW( 404 lpFileName: LPCWSTR, 405 RequestedInformation: SECURITY_INFORMATION, 406 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 407 nLength: DWORD, 408 lpnLengthNeeded: LPDWORD, 409 ) -> BOOL; GetKernelObjectSecurity( Handle: HANDLE, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD, ) -> BOOL410 pub fn GetKernelObjectSecurity( 411 Handle: HANDLE, 412 RequestedInformation: SECURITY_INFORMATION, 413 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 414 nLength: DWORD, 415 lpnLengthNeeded: LPDWORD, 416 ) -> BOOL; GetLengthSid( pSid: PSID, ) -> DWORD417 pub fn GetLengthSid( 418 pSid: PSID, 419 ) -> DWORD; GetPrivateObjectSecurity( ObjectDescriptor: PSECURITY_DESCRIPTOR, SecurityInformation: SECURITY_INFORMATION, ResultantDescriptor: PSECURITY_DESCRIPTOR, DescriptorLength: DWORD, ReturnLength: PDWORD, ) -> BOOL420 pub fn GetPrivateObjectSecurity( 421 ObjectDescriptor: PSECURITY_DESCRIPTOR, 422 SecurityInformation: SECURITY_INFORMATION, 423 ResultantDescriptor: PSECURITY_DESCRIPTOR, 424 DescriptorLength: DWORD, 425 ReturnLength: PDWORD, 426 ) -> BOOL; GetSecurityDescriptorControl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pControl: PSECURITY_DESCRIPTOR_CONTROL, lpdwRevision: LPDWORD, ) -> BOOL427 pub fn GetSecurityDescriptorControl( 428 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 429 pControl: PSECURITY_DESCRIPTOR_CONTROL, 430 lpdwRevision: LPDWORD, 431 ) -> BOOL; GetSecurityDescriptorDacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbDaclPresent: LPBOOL, pDacl: *mut PACL, lpbDaclDefaulted: LPBOOL, ) -> BOOL432 pub fn GetSecurityDescriptorDacl( 433 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 434 lpbDaclPresent: LPBOOL, 435 pDacl: *mut PACL, 436 lpbDaclDefaulted: LPBOOL, 437 ) -> BOOL; GetSecurityDescriptorGroup( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: *mut PSID, lpbGroupDefaulted: LPBOOL, ) -> BOOL438 pub fn GetSecurityDescriptorGroup( 439 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 440 pGroup: *mut PSID, 441 lpbGroupDefaulted: LPBOOL, 442 ) -> BOOL; GetSecurityDescriptorLength( pSecurityDescriptor: PSECURITY_DESCRIPTOR ) -> DWORD443 pub fn GetSecurityDescriptorLength( 444 pSecurityDescriptor: PSECURITY_DESCRIPTOR 445 ) -> DWORD; GetSecurityDescriptorOwner( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: *mut PSID, lpbOwnerDefaulted: LPBOOL, ) -> BOOL446 pub fn GetSecurityDescriptorOwner( 447 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 448 pOwner: *mut PSID, 449 lpbOwnerDefaulted: LPBOOL, 450 ) -> BOOL; GetSecurityDescriptorRMControl( SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR, ) -> DWORD451 pub fn GetSecurityDescriptorRMControl( 452 SecurityDescriptor: PSECURITY_DESCRIPTOR, 453 RMControl: PUCHAR, 454 ) -> DWORD; GetSecurityDescriptorSacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbSaclPresent: LPBOOL, pSacl: *mut PACL, lpbSaclDefaulted: LPBOOL, ) -> BOOL455 pub fn GetSecurityDescriptorSacl( 456 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 457 lpbSaclPresent: LPBOOL, 458 pSacl: *mut PACL, 459 lpbSaclDefaulted: LPBOOL, 460 ) -> BOOL; GetSidIdentifierAuthority( pSid: PSID, ) -> PSID_IDENTIFIER_AUTHORITY461 pub fn GetSidIdentifierAuthority( 462 pSid: PSID, 463 ) -> PSID_IDENTIFIER_AUTHORITY; GetSidLengthRequired( nSubAuthorityCount: UCHAR, ) -> DWORD464 pub fn GetSidLengthRequired( 465 nSubAuthorityCount: UCHAR, 466 ) -> DWORD; GetSidSubAuthority( pSid: PSID, nSubAuthority: DWORD, ) -> PDWORD467 pub fn GetSidSubAuthority( 468 pSid: PSID, 469 nSubAuthority: DWORD, 470 ) -> PDWORD; GetSidSubAuthorityCount( pSid: PSID, ) -> PUCHAR471 pub fn GetSidSubAuthorityCount( 472 pSid: PSID, 473 ) -> PUCHAR; GetTokenInformation( TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD, ReturnLength: PDWORD, ) -> BOOL474 pub fn GetTokenInformation( 475 TokenHandle: HANDLE, 476 TokenInformationClass: TOKEN_INFORMATION_CLASS, 477 TokenInformation: LPVOID, 478 TokenInformationLength: DWORD, 479 ReturnLength: PDWORD, 480 ) -> BOOL; GetWindowsAccountDomainSid( pSid: PSID, pDomainSid: PSID, cbDomainSid: *mut DWORD, ) -> BOOL481 pub fn GetWindowsAccountDomainSid( 482 pSid: PSID, 483 pDomainSid: PSID, 484 cbDomainSid: *mut DWORD, 485 ) -> BOOL; ImpersonateAnonymousToken( ThreadHandle: HANDLE, ) -> BOOL486 pub fn ImpersonateAnonymousToken( 487 ThreadHandle: HANDLE, 488 ) -> BOOL; ImpersonateLoggedOnUser( hToken: HANDLE, ) -> BOOL489 pub fn ImpersonateLoggedOnUser( 490 hToken: HANDLE, 491 ) -> BOOL; ImpersonateSelf( ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, ) -> BOOL492 pub fn ImpersonateSelf( 493 ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, 494 ) -> BOOL; InitializeAcl( pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD, ) -> BOOL495 pub fn InitializeAcl( 496 pAcl: PACL, 497 nAclLength: DWORD, 498 dwAclRevision: DWORD, 499 ) -> BOOL; InitializeSecurityDescriptor( pSecurityDescriptor: PSECURITY_DESCRIPTOR, dwRevision: DWORD, ) -> BOOL500 pub fn InitializeSecurityDescriptor( 501 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 502 dwRevision: DWORD, 503 ) -> BOOL; InitializeSid( Sid: PSID, pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE, ) -> BOOL504 pub fn InitializeSid( 505 Sid: PSID, 506 pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, 507 nSubAuthorityCount: BYTE, 508 ) -> BOOL; IsTokenRestricted( TokenHandle: HANDLE, ) -> BOOL509 pub fn IsTokenRestricted( 510 TokenHandle: HANDLE, 511 ) -> BOOL; IsValidAcl( pAcl: PACL, ) -> BOOL512 pub fn IsValidAcl( 513 pAcl: PACL, 514 ) -> BOOL; IsValidSecurityDescriptor( pSecurityDescriptor: PSECURITY_DESCRIPTOR, ) -> BOOL515 pub fn IsValidSecurityDescriptor( 516 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 517 ) -> BOOL; IsValidSid( pSid: PSID, ) -> BOOL518 pub fn IsValidSid( 519 pSid: PSID, 520 ) -> BOOL; IsWellKnownSid( pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE, ) -> BOOL521 pub fn IsWellKnownSid( 522 pSid: PSID, 523 WellKnownSidType: WELL_KNOWN_SID_TYPE, 524 ) -> BOOL; MakeAbsoluteSD( pSelfRelativeSD: PSECURITY_DESCRIPTOR, pAbsoluteSD: PSECURITY_DESCRIPTOR, lpdwAbsoluteSDSize: LPDWORD, pDacl: PACL, lpdwDaclSize: LPDWORD, pSacl: PACL, lpdwSaclSize: LPDWORD, pOwner: PSID, lpdwOwnerSize: LPDWORD, pPrimaryGroup: PSID, lpdwPrimaryGroupSize: LPDWORD, ) -> BOOL525 pub fn MakeAbsoluteSD( 526 pSelfRelativeSD: PSECURITY_DESCRIPTOR, 527 pAbsoluteSD: PSECURITY_DESCRIPTOR, 528 lpdwAbsoluteSDSize: LPDWORD, 529 pDacl: PACL, 530 lpdwDaclSize: LPDWORD, 531 pSacl: PACL, 532 lpdwSaclSize: LPDWORD, 533 pOwner: PSID, 534 lpdwOwnerSize: LPDWORD, 535 pPrimaryGroup: PSID, 536 lpdwPrimaryGroupSize: LPDWORD, 537 ) -> BOOL; MakeSelfRelativeSD( pAbsoluteSD: PSECURITY_DESCRIPTOR, pSelfRelativeSD: PSECURITY_DESCRIPTOR, lpdwBufferLength: LPDWORD, ) -> BOOL538 pub fn MakeSelfRelativeSD( 539 pAbsoluteSD: PSECURITY_DESCRIPTOR, 540 pSelfRelativeSD: PSECURITY_DESCRIPTOR, 541 lpdwBufferLength: LPDWORD, 542 ) -> BOOL; MapGenericMask( AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING, )543 pub fn MapGenericMask( 544 AccessMask: PDWORD, 545 GenericMapping: PGENERIC_MAPPING, 546 ); ObjectCloseAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: BOOL, ) -> BOOL547 pub fn ObjectCloseAuditAlarmW( 548 SubsystemName: LPCWSTR, 549 HandleId: LPVOID, 550 GenerateOnClose: BOOL, 551 ) -> BOOL; ObjectDeleteAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: BOOL, ) -> BOOL552 pub fn ObjectDeleteAuditAlarmW( 553 SubsystemName: LPCWSTR, 554 HandleId: LPVOID, 555 GenerateOnClose: BOOL, 556 ) -> BOOL; ObjectOpenAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: BOOL, AccessGranted: BOOL, GenerateOnClose: LPBOOL, ) -> BOOL557 pub fn ObjectOpenAuditAlarmW( 558 SubsystemName: LPCWSTR, 559 HandleId: LPVOID, 560 ObjectTypeName: LPWSTR, 561 ObjectName: LPWSTR, 562 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 563 ClientToken: HANDLE, 564 DesiredAccess: DWORD, 565 GrantedAccess: DWORD, 566 Privileges: PPRIVILEGE_SET, 567 ObjectCreation: BOOL, 568 AccessGranted: BOOL, 569 GenerateOnClose: LPBOOL, 570 ) -> BOOL; ObjectPrivilegeAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL, ) -> BOOL571 pub fn ObjectPrivilegeAuditAlarmW( 572 SubsystemName: LPCWSTR, 573 HandleId: LPVOID, 574 ClientToken: HANDLE, 575 DesiredAccess: DWORD, 576 Privileges: PPRIVILEGE_SET, 577 AccessGranted: BOOL, 578 ) -> BOOL; PrivilegeCheck( ClientToken: HANDLE, RequiredPrivileges: PPRIVILEGE_SET, pfResult: LPBOOL, ) -> BOOL579 pub fn PrivilegeCheck( 580 ClientToken: HANDLE, 581 RequiredPrivileges: PPRIVILEGE_SET, 582 pfResult: LPBOOL, 583 ) -> BOOL; PrivilegedServiceAuditAlarmW( SubsystemName: LPCWSTR, ServiceName: LPCWSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL, ) -> BOOL584 pub fn PrivilegedServiceAuditAlarmW( 585 SubsystemName: LPCWSTR, 586 ServiceName: LPCWSTR, 587 ClientToken: HANDLE, 588 Privileges: PPRIVILEGE_SET, 589 AccessGranted: BOOL, 590 ) -> BOOL; QuerySecurityAccessMask( SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD, )591 pub fn QuerySecurityAccessMask( 592 SecurityInformation: SECURITY_INFORMATION, 593 DesiredAccess: LPDWORD, 594 ); RevertToSelf() -> BOOL595 pub fn RevertToSelf() -> BOOL; SetAclInformation( pAcl: PACL, pAclInformation: LPVOID, nAclInformationLength: DWORD, dwAclInfomrationClass: ACL_INFORMATION_CLASS, ) -> BOOL596 pub fn SetAclInformation( 597 pAcl: PACL, 598 pAclInformation: LPVOID, 599 nAclInformationLength: DWORD, 600 dwAclInfomrationClass: ACL_INFORMATION_CLASS, 601 ) -> BOOL; SetFileSecurityW( lpFileName: LPCWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ) -> BOOL602 pub fn SetFileSecurityW( 603 lpFileName: LPCWSTR, 604 SecurityInformation: SECURITY_INFORMATION, 605 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 606 ) -> BOOL; SetKernelObjectSecurity( Handle: HANDLE, SecurityInformation: SECURITY_INFORMATION, SecurityDescriptor: PSECURITY_DESCRIPTOR, ) -> BOOL607 pub fn SetKernelObjectSecurity( 608 Handle: HANDLE, 609 SecurityInformation: SECURITY_INFORMATION, 610 SecurityDescriptor: PSECURITY_DESCRIPTOR, 611 ) -> BOOL; SetPrivateObjectSecurity( SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, GenericMapping: PGENERIC_MAPPING, Token: HANDLE, ) -> BOOL612 pub fn SetPrivateObjectSecurity( 613 SecurityInformation: SECURITY_INFORMATION, 614 ModificationDescriptor: PSECURITY_DESCRIPTOR, 615 ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 616 GenericMapping: PGENERIC_MAPPING, 617 Token: HANDLE, 618 ) -> BOOL; SetPrivateObjectSecurityEx( SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, AutoInheritFlags: ULONG, GenericMapping: PGENERIC_MAPPING, Token: HANDLE, ) -> BOOL619 pub fn SetPrivateObjectSecurityEx( 620 SecurityInformation: SECURITY_INFORMATION, 621 ModificationDescriptor: PSECURITY_DESCRIPTOR, 622 ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 623 AutoInheritFlags: ULONG, 624 GenericMapping: PGENERIC_MAPPING, 625 Token: HANDLE, 626 ) -> BOOL; SetSecurityAccessMask( SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD, )627 pub fn SetSecurityAccessMask( 628 SecurityInformation: SECURITY_INFORMATION, 629 DesiredAccess: LPDWORD, 630 ); SetSecurityDescriptorControl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL, ) -> BOOL631 pub fn SetSecurityDescriptorControl( 632 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 633 ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, 634 ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL, 635 ) -> BOOL; SetSecurityDescriptorDacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, bDaclPresent: BOOL, pDacl: PACL, bDaclDefaulted: BOOL, ) -> BOOL636 pub fn SetSecurityDescriptorDacl( 637 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 638 bDaclPresent: BOOL, 639 pDacl: PACL, 640 bDaclDefaulted: BOOL, 641 ) -> BOOL; SetSecurityDescriptorGroup( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: PSID, bGroupDefaulted: BOOL, ) -> BOOL642 pub fn SetSecurityDescriptorGroup( 643 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 644 pGroup: PSID, 645 bGroupDefaulted: BOOL, 646 ) -> BOOL; SetSecurityDescriptorOwner( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: PSID, bOwnerDefaulted: BOOL, ) -> BOOL647 pub fn SetSecurityDescriptorOwner( 648 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 649 pOwner: PSID, 650 bOwnerDefaulted: BOOL, 651 ) -> BOOL; SetSecurityDescriptorRMControl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR, ) -> DWORD652 pub fn SetSecurityDescriptorRMControl( 653 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 654 RMControl: PUCHAR, 655 ) -> DWORD; SetSecurityDescriptorSacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, bSaclPresent: BOOL, pSacl: PACL, bSaclDefaulted: BOOL, ) -> BOOL656 pub fn SetSecurityDescriptorSacl( 657 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 658 bSaclPresent: BOOL, 659 pSacl: PACL, 660 bSaclDefaulted: BOOL, 661 ) -> BOOL; SetTokenInformation( TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD, ) -> BOOL662 pub fn SetTokenInformation( 663 TokenHandle: HANDLE, 664 TokenInformationClass: TOKEN_INFORMATION_CLASS, 665 TokenInformation: LPVOID, 666 TokenInformationLength: DWORD, 667 ) -> BOOL; SetCachedSigningLevel( SourceFiles: PHANDLE, SourceFileCount: ULONG, Flags: ULONG, TargetFile: HANDLE, ) -> BOOL668 pub fn SetCachedSigningLevel( 669 SourceFiles: PHANDLE, 670 SourceFileCount: ULONG, 671 Flags: ULONG, 672 TargetFile: HANDLE, 673 ) -> BOOL; GetCachedSigningLevel( File: HANDLE, Flags: PULONG, SigningLevel: PULONG, Thumbprint: PUCHAR, ThumbprintSize: PULONG, ThumbprintAlgorithm: PULONG, ) -> BOOL674 pub fn GetCachedSigningLevel( 675 File: HANDLE, 676 Flags: PULONG, 677 SigningLevel: PULONG, 678 Thumbprint: PUCHAR, 679 ThumbprintSize: PULONG, 680 ThumbprintAlgorithm: PULONG, 681 ) -> BOOL; CveEventWrite( CveId: PCWSTR, AdditionalDetails: PCWSTR, ) -> LONG682 pub fn CveEventWrite( 683 CveId: PCWSTR, 684 AdditionalDetails: PCWSTR, 685 ) -> LONG; DeriveCapabilitySidsFromName( CapName: LPCWSTR, CapabilityGroupSids: *mut *mut PSID, CapabilityGroupSidCount: *mut DWORD, CapabilitySids: *mut *mut PSID, CapabilitySidCount: *mut DWORD, ) -> BOOL686 pub fn DeriveCapabilitySidsFromName( 687 CapName: LPCWSTR, 688 CapabilityGroupSids: *mut *mut PSID, 689 CapabilityGroupSidCount: *mut DWORD, 690 CapabilitySids: *mut *mut PSID, 691 CapabilitySidCount: *mut DWORD, 692 ) -> BOOL; 693 } 694