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 use shared::guiddef::GUID; 9 use shared::minwindef::{ 10 BOOL, BYTE, DWORD, LPBOOL, LPDWORD, LPVOID, PBOOL, PDWORD, PUCHAR, PULONG, UCHAR, ULONG 11 }; 12 use um::minwinbase::LPSECURITY_ATTRIBUTES; 13 use um::winnt::{ 14 ACL_INFORMATION_CLASS, AUDIT_EVENT_TYPE, BOOLEAN, HANDLE, LONG, LPCWSTR, LPWSTR, PACL, 15 PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, PCWSTR, PGENERIC_MAPPING, PHANDLE, PLUID, 16 PLUID_AND_ATTRIBUTES, POBJECT_TYPE_LIST, PPRIVILEGE_SET, PSECURITY_DESCRIPTOR, 17 PSECURITY_DESCRIPTOR_CONTROL, PSID, PSID_AND_ATTRIBUTES, PSID_IDENTIFIER_AUTHORITY, 18 PTOKEN_GROUPS, PTOKEN_PRIVILEGES, PVOID, SECURITY_DESCRIPTOR_CONTROL, 19 SECURITY_IMPERSONATION_LEVEL, SECURITY_INFORMATION, TOKEN_INFORMATION_CLASS, TOKEN_TYPE, 20 WELL_KNOWN_SID_TYPE 21 }; 22 extern "system" { AccessCheck( pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, ) -> BOOL23 pub fn AccessCheck( 24 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 25 ClientToken: HANDLE, 26 DesiredAccess: DWORD, 27 GenericMapping: PGENERIC_MAPPING, 28 PrivilegeSet: PPRIVILEGE_SET, 29 PrivilegeSetLength: LPDWORD, 30 GrantedAccess: LPDWORD, 31 AccessStatus: LPBOOL, 32 ) -> 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, ) -> BOOL33 pub fn AccessCheckAndAuditAlarmW( 34 SubsystemName: LPCWSTR, 35 HandleId: LPVOID, 36 ObjectTypeName: LPWSTR, 37 ObjectName: LPWSTR, 38 SecurityDescriptor: PSECURITY_DESCRIPTOR, 39 DesiredAccess: DWORD, 40 GenericMapping: PGENERIC_MAPPING, 41 ObjectCreation: BOOL, 42 GrantedAccess: LPDWORD, 43 AccessStatus: LPBOOL, 44 pfGenerateOnClose: LPBOOL, 45 ) -> 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, ) -> BOOL46 pub fn AccessCheckByType( 47 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 48 PrincipalSelfSid: PSID, 49 ClientToken: HANDLE, 50 DesiredAccess: DWORD, 51 ObjectTypeList: POBJECT_TYPE_LIST, 52 ObjectTypeListLength: DWORD, 53 GenericMapping: PGENERIC_MAPPING, 54 PrivilegeSet: PPRIVILEGE_SET, 55 PrivilegeSetLength: LPDWORD, 56 GrantedAccess: LPDWORD, 57 AccessStatus: LPBOOL, 58 ) -> 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, ) -> BOOL59 pub fn AccessCheckByTypeResultList( 60 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 61 PrincipalSelfSid: PSID, 62 ClientToken: HANDLE, 63 DesiredAccess: DWORD, 64 ObjectTypeList: POBJECT_TYPE_LIST, 65 ObjectTypeListLength: DWORD, 66 GenericMapping: PGENERIC_MAPPING, 67 PrivilegeSet: PPRIVILEGE_SET, 68 PrivilegeSetLength: LPDWORD, 69 GrantedAccessList: LPDWORD, 70 AccessStatusList: LPDWORD, 71 ) -> 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, ) -> BOOL72 pub fn AccessCheckByTypeAndAuditAlarmW( 73 SubsystemName: LPCWSTR, 74 HandleId: LPVOID, 75 ObjectTypeName: LPWSTR, 76 ObjectName: LPCWSTR, 77 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 78 PrincipalSelfSid: PSID, 79 DesiredAccess: DWORD, 80 AuditType: AUDIT_EVENT_TYPE, 81 Flags: DWORD, 82 ObjectTypeList: POBJECT_TYPE_LIST, 83 ObjectTypeListLength: DWORD, 84 GenericMapping: PGENERIC_MAPPING, 85 ObjectCreation: BOOL, 86 GrantedAccess: LPDWORD, 87 AccessStatus: LPBOOL, 88 pfGenerateOnClose: LPBOOL, 89 ) -> 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, ) -> BOOL90 pub fn AccessCheckByTypeResultListAndAuditAlarmW( 91 SubsystemName: LPCWSTR, 92 HandleId: LPVOID, 93 ObjectTypeName: LPCWSTR, 94 ObjectName: LPCWSTR, 95 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 96 PrincipalSelfSid: PSID, 97 DesiredAccess: DWORD, 98 AuditType: AUDIT_EVENT_TYPE, 99 Flags: DWORD, 100 ObjectTypeList: POBJECT_TYPE_LIST, 101 ObjectTypeListLength: DWORD, 102 GenericMapping: PGENERIC_MAPPING, 103 ObjectCreation: BOOL, 104 GrantedAccess: LPDWORD, 105 AccessStatusList: LPDWORD, 106 pfGenerateOnClose: LPBOOL, 107 ) -> 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, ) -> BOOL108 pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleW( 109 SubsystemName: LPCWSTR, 110 HandleId: LPVOID, 111 ClientToken: HANDLE, 112 ObjectTypeName: LPCWSTR, 113 ObjectName: LPCWSTR, 114 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 115 PrincipalSelfSid: PSID, 116 DesiredAccess: DWORD, 117 AuditType: AUDIT_EVENT_TYPE, 118 Flags: DWORD, 119 ObjectTypeList: POBJECT_TYPE_LIST, 120 ObjectTypeListLength: DWORD, 121 GenericMapping: PGENERIC_MAPPING, 122 ObjectCreation: BOOL, 123 GrantedAccess: LPDWORD, 124 AccessStatusList: LPDWORD, 125 pfGenerateOnClose: LPBOOL, 126 ) -> BOOL; AddAccessAllowedAce( pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL127 pub fn AddAccessAllowedAce( 128 pAcl: PACL, 129 dwAceRevision: DWORD, 130 AccessMask: DWORD, 131 pSid: PSID, 132 ) -> BOOL; AddAccessAllowedAceEx( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL133 pub fn AddAccessAllowedAceEx( 134 pAcl: PACL, 135 dwAceRevision: DWORD, 136 AceFlags: DWORD, 137 AccessMask: DWORD, 138 pSid: PSID, 139 ) -> BOOL; AddAccessAllowedObjectAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: *mut GUID, InheritedObjectTypeGuid: *mut GUID, pSid: PSID, ) -> BOOL140 pub fn AddAccessAllowedObjectAce( 141 pAcl: PACL, 142 dwAceRevision: DWORD, 143 AceFlags: DWORD, 144 AccessMask: DWORD, 145 ObjectTypeGuid: *mut GUID, 146 InheritedObjectTypeGuid: *mut GUID, 147 pSid: PSID, 148 ) -> BOOL; AddAccessDeniedAce( pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL149 pub fn AddAccessDeniedAce( 150 pAcl: PACL, 151 dwAceRevision: DWORD, 152 AccessMask: DWORD, 153 pSid: PSID, 154 ) -> BOOL; AddAccessDeniedAceEx( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL155 pub fn AddAccessDeniedAceEx( 156 pAcl: PACL, 157 dwAceRevision: DWORD, 158 AceFlags: DWORD, 159 AccessMask: DWORD, 160 pSid: PSID, 161 ) -> BOOL; AddAccessDeniedObjectAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: *mut GUID, InheritedObjectTypeGuid: *mut GUID, pSid: PSID, ) -> BOOL162 pub fn AddAccessDeniedObjectAce( 163 pAcl: PACL, 164 dwAceRevision: DWORD, 165 AceFlags: DWORD, 166 AccessMask: DWORD, 167 ObjectTypeGuid: *mut GUID, 168 InheritedObjectTypeGuid: *mut GUID, 169 pSid: PSID, 170 ) -> BOOL; AddAce( pAcl: PACL, dwAceRevision: DWORD, dwStartingAceIndex: DWORD, pAceList: LPVOID, nAceListLength: DWORD, ) -> BOOL171 pub fn AddAce( 172 pAcl: PACL, 173 dwAceRevision: DWORD, 174 dwStartingAceIndex: DWORD, 175 pAceList: LPVOID, 176 nAceListLength: DWORD, 177 ) -> BOOL; AddAuditAccessAce( pAcl: PACL, dwAceRevision: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL, ) -> BOOL178 pub fn AddAuditAccessAce( 179 pAcl: PACL, 180 dwAceRevision: DWORD, 181 dwAccessMask: DWORD, 182 pSid: PSID, 183 bAuditSuccess: BOOL, 184 bAuditFailure: BOOL, 185 ) -> BOOL; AddAuditAccessAceEx( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL, ) -> BOOL186 pub fn AddAuditAccessAceEx( 187 pAcl: PACL, 188 dwAceRevision: DWORD, 189 AceFlags: DWORD, 190 dwAccessMask: DWORD, 191 pSid: PSID, 192 bAuditSuccess: BOOL, 193 bAuditFailure: BOOL, 194 ) -> BOOL; AddAuditAccessObjectAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: *mut GUID, InheritedObjectTypeGuid: *mut GUID, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL, ) -> BOOL195 pub fn AddAuditAccessObjectAce( 196 pAcl: PACL, 197 dwAceRevision: DWORD, 198 AceFlags: DWORD, 199 AccessMask: DWORD, 200 ObjectTypeGuid: *mut GUID, 201 InheritedObjectTypeGuid: *mut GUID, 202 pSid: PSID, 203 bAuditSuccess: BOOL, 204 bAuditFailure: BOOL, 205 ) -> BOOL; AddMandatoryAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, MandatoryPolicy: DWORD, pLabelSid: PSID, ) -> BOOL206 pub fn AddMandatoryAce( 207 pAcl: PACL, 208 dwAceRevision: DWORD, 209 AceFlags: DWORD, 210 MandatoryPolicy: DWORD, 211 pLabelSid: PSID, 212 ) -> BOOL; AddResourceAttributeAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, pReturnLength: PDWORD, ) -> BOOL213 pub fn AddResourceAttributeAce( 214 pAcl: PACL, 215 dwAceRevision: DWORD, 216 AceFlags: DWORD, 217 AccessMask: DWORD, 218 pSid: PSID, 219 pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, 220 pReturnLength: PDWORD, 221 ) -> BOOL; AddScopedPolicyIDAce( pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, ) -> BOOL222 pub fn AddScopedPolicyIDAce( 223 pAcl: PACL, 224 dwAceRevision: DWORD, 225 AceFlags: DWORD, 226 AccessMask: DWORD, 227 pSid: PSID, 228 ) -> BOOL; AdjustTokenGroups( TokenHandle: HANDLE, ResetToDefault: BOOL, NewState: PTOKEN_GROUPS, BufferLength: DWORD, PreviousState: PTOKEN_GROUPS, ReturnLength: PDWORD, ) -> BOOL229 pub fn AdjustTokenGroups( 230 TokenHandle: HANDLE, 231 ResetToDefault: BOOL, 232 NewState: PTOKEN_GROUPS, 233 BufferLength: DWORD, 234 PreviousState: PTOKEN_GROUPS, 235 ReturnLength: PDWORD, 236 ) -> BOOL; AdjustTokenPrivileges( TokenHandle: HANDLE, DisableAllPrivileges: BOOL, NewState: PTOKEN_PRIVILEGES, BufferLength: DWORD, PreviousState: PTOKEN_PRIVILEGES, ReturnLength: PDWORD, ) -> BOOL237 pub fn AdjustTokenPrivileges( 238 TokenHandle: HANDLE, 239 DisableAllPrivileges: BOOL, 240 NewState: PTOKEN_PRIVILEGES, 241 BufferLength: DWORD, 242 PreviousState: PTOKEN_PRIVILEGES, 243 ReturnLength: PDWORD, 244 ) -> 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, ) -> BOOL245 pub fn AllocateAndInitializeSid( 246 pIdentifierAuthoirity: PSID_IDENTIFIER_AUTHORITY, 247 nSubAuthorityCount: BYTE, 248 dwSubAuthority0: DWORD, 249 dwSubAuthority1: DWORD, 250 dwSubAuthority2: DWORD, 251 dwSubAuthority3: DWORD, 252 dwSubAuthority4: DWORD, 253 dwSubAuthority5: DWORD, 254 dwSubAuthority6: DWORD, 255 dwSubAuthority7: DWORD, 256 pSid: *mut PSID, 257 ) -> BOOL; AllocateLocallyUniqueId( Luid: PLUID, ) -> BOOL258 pub fn AllocateLocallyUniqueId( 259 Luid: PLUID, 260 ) -> BOOL; AreAllAccessesGranted( GrantedAccess: DWORD, DesiredAccess: DWORD, ) -> BOOL261 pub fn AreAllAccessesGranted( 262 GrantedAccess: DWORD, 263 DesiredAccess: DWORD, 264 ) -> BOOL; AreAnyAccessesGranted( GrantedAccess: DWORD, DesiredAccess: DWORD, ) -> BOOL265 pub fn AreAnyAccessesGranted( 266 GrantedAccess: DWORD, 267 DesiredAccess: DWORD, 268 ) -> BOOL; CheckTokenMembership( TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL, ) -> BOOL269 pub fn CheckTokenMembership( 270 TokenHandle: HANDLE, 271 SidToCheck: PSID, 272 IsMember: PBOOL, 273 ) -> BOOL; CheckTokenCapability( TokenHandle: HANDLE, CapabilitySidToCheck: PSID, HasCapability: PBOOL, ) -> BOOL274 pub fn CheckTokenCapability( 275 TokenHandle: HANDLE, 276 CapabilitySidToCheck: PSID, 277 HasCapability: PBOOL, 278 ) -> BOOL; GetAppContainerAce( Acl: PACL, StartingAceIndex: DWORD, AppContainerAce: *mut PVOID, AppContainerAceIndex: *mut DWORD, ) -> BOOL279 pub fn GetAppContainerAce( 280 Acl: PACL, 281 StartingAceIndex: DWORD, 282 AppContainerAce: *mut PVOID, 283 AppContainerAceIndex: *mut DWORD, 284 ) -> BOOL; CheckTokenMembershipEx( TokenHandle: HANDLE, SidToCheck: PSID, Flags: DWORD, IsMember: PBOOL, ) -> BOOL285 pub fn CheckTokenMembershipEx( 286 TokenHandle: HANDLE, 287 SidToCheck: PSID, 288 Flags: DWORD, 289 IsMember: PBOOL, 290 ) -> BOOL; ConvertToAutoInheritPrivateObjectSecurity( ParentDescriptor: PSECURITY_DESCRIPTOR, CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, ObjectType: *mut GUID, IsDirectoryObject: BOOLEAN, GenericMapping: PGENERIC_MAPPING, ) -> BOOL291 pub fn ConvertToAutoInheritPrivateObjectSecurity( 292 ParentDescriptor: PSECURITY_DESCRIPTOR, 293 CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, 294 NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 295 ObjectType: *mut GUID, 296 IsDirectoryObject: BOOLEAN, 297 GenericMapping: PGENERIC_MAPPING, 298 ) -> BOOL; CopySid( nDestinationSidLength: DWORD, pDestinationSid: PSID, pSourceSid: PSID, ) -> BOOL299 pub fn CopySid( 300 nDestinationSidLength: DWORD, 301 pDestinationSid: PSID, 302 pSourceSid: PSID, 303 ) -> BOOL; CreatePrivateObjectSecurity( ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: *mut PSECURITY_DESCRIPTOR, IsDirectoryObject: BOOL, Token: HANDLE, GenericMapping: PGENERIC_MAPPING, ) -> BOOL304 pub fn CreatePrivateObjectSecurity( 305 ParentDescriptor: PSECURITY_DESCRIPTOR, 306 CreatorDescriptor: PSECURITY_DESCRIPTOR, 307 NewDescriptor: *mut PSECURITY_DESCRIPTOR, 308 IsDirectoryObject: BOOL, 309 Token: HANDLE, 310 GenericMapping: PGENERIC_MAPPING, 311 ) -> BOOL; CreatePrivateObjectSecurityEx( ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, ObjectType: *mut GUID, IsContainerObject: BOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING, ) -> BOOL312 pub fn CreatePrivateObjectSecurityEx( 313 ParentDescriptor: PSECURITY_DESCRIPTOR, 314 CreatorDescriptor: PSECURITY_DESCRIPTOR, 315 NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 316 ObjectType: *mut GUID, 317 IsContainerObject: BOOL, 318 AutoInheritFlags: ULONG, 319 Token: HANDLE, 320 GenericMapping: PGENERIC_MAPPING, 321 ) -> 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, ) -> BOOL322 pub fn CreatePrivateObjectSecurityWithMultipleInheritance( 323 ParentDescriptor: PSECURITY_DESCRIPTOR, 324 CreatorDescriptor: PSECURITY_DESCRIPTOR, 325 NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 326 ObjectTypes: *mut *mut GUID, 327 GuidCount: ULONG, 328 IsContainerObject: BOOL, 329 AutoInheritFlags: ULONG, 330 Token: HANDLE, 331 GenericMapping: PGENERIC_MAPPING, 332 ) -> 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, ) -> BOOL333 pub fn CreateRestrictedToken( 334 ExistingTokenHandle: HANDLE, 335 Flags: DWORD, 336 DisableSidCount: DWORD, 337 SidsToDisable: PSID_AND_ATTRIBUTES, 338 DeletePrivilegeCount: DWORD, 339 PrivilegesToDelete: PLUID_AND_ATTRIBUTES, 340 RestrictedSidCount: DWORD, 341 SidsToRestrict: PSID_AND_ATTRIBUTES, 342 NewTokenHandle: PHANDLE, 343 ) -> BOOL; CreateWellKnownSid( WellKnownSidType: WELL_KNOWN_SID_TYPE, DomainSid: PSID, pSid: PSID, cbSid: *mut DWORD, ) -> BOOL344 pub fn CreateWellKnownSid( 345 WellKnownSidType: WELL_KNOWN_SID_TYPE, 346 DomainSid: PSID, 347 pSid: PSID, 348 cbSid: *mut DWORD, 349 ) -> BOOL; EqualDomainSid( pSid1: PSID, pSid2: PSID, pfEqual: *mut BOOL, ) -> BOOL350 pub fn EqualDomainSid( 351 pSid1: PSID, 352 pSid2: PSID, 353 pfEqual: *mut BOOL, 354 ) -> BOOL; DeleteAce( pAcl: PACL, dwAceIndex: DWORD, ) -> BOOL355 pub fn DeleteAce( 356 pAcl: PACL, 357 dwAceIndex: DWORD, 358 ) -> BOOL; DestroyPrivateObjectSecurity( ObjectDescriptor: *mut PSECURITY_DESCRIPTOR, ) -> BOOL359 pub fn DestroyPrivateObjectSecurity( 360 ObjectDescriptor: *mut PSECURITY_DESCRIPTOR, 361 ) -> BOOL; DuplicateToken( ExistingTokenHandle: HANDLE, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, DuplicateTokenHandle: PHANDLE, ) -> BOOL362 pub fn DuplicateToken( 363 ExistingTokenHandle: HANDLE, 364 ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, 365 DuplicateTokenHandle: PHANDLE, 366 ) -> BOOL; DuplicateTokenEx( hExistingToken: HANDLE, dwDesiredAccess: DWORD, lpTokenAttributes: LPSECURITY_ATTRIBUTES, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, TokenType: TOKEN_TYPE, phNewToken: PHANDLE, ) -> BOOL367 pub fn DuplicateTokenEx( 368 hExistingToken: HANDLE, 369 dwDesiredAccess: DWORD, 370 lpTokenAttributes: LPSECURITY_ATTRIBUTES, 371 ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, 372 TokenType: TOKEN_TYPE, 373 phNewToken: PHANDLE, 374 ) -> BOOL; EqualPrefixSid( pSid1: PSID, pSid2: PSID, ) -> BOOL375 pub fn EqualPrefixSid( 376 pSid1: PSID, 377 pSid2: PSID, 378 ) -> BOOL; EqualSid( pSid1: PSID, pSid2: PSID, ) -> BOOL379 pub fn EqualSid( 380 pSid1: PSID, 381 pSid2: PSID, 382 ) -> BOOL; FindFirstFreeAce( pAcl: PACL, pAce: *mut LPVOID, ) -> BOOL383 pub fn FindFirstFreeAce( 384 pAcl: PACL, 385 pAce: *mut LPVOID, 386 ) -> BOOL; FreeSid( pSid: PSID ) -> PVOID387 pub fn FreeSid( 388 pSid: PSID 389 ) -> PVOID; GetAce( pAcl: PACL, dwAceIndex: DWORD, pAce: *mut LPVOID, ) -> BOOL390 pub fn GetAce( 391 pAcl: PACL, 392 dwAceIndex: DWORD, 393 pAce: *mut LPVOID, 394 ) -> BOOL; GetAclInformation( pAcl: PACL, pAclInformtion: LPVOID, nAclInformationLength: DWORD, dwAclInformationClass: ACL_INFORMATION_CLASS, ) -> BOOL395 pub fn GetAclInformation( 396 pAcl: PACL, 397 pAclInformtion: LPVOID, 398 nAclInformationLength: DWORD, 399 dwAclInformationClass: ACL_INFORMATION_CLASS, 400 ) -> BOOL; GetFileSecurityW( lpFileName: LPCWSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD, ) -> BOOL401 pub fn GetFileSecurityW( 402 lpFileName: LPCWSTR, 403 RequestedInformation: SECURITY_INFORMATION, 404 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 405 nLength: DWORD, 406 lpnLengthNeeded: LPDWORD, 407 ) -> BOOL; GetKernelObjectSecurity( Handle: HANDLE, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD, ) -> BOOL408 pub fn GetKernelObjectSecurity( 409 Handle: HANDLE, 410 RequestedInformation: SECURITY_INFORMATION, 411 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 412 nLength: DWORD, 413 lpnLengthNeeded: LPDWORD, 414 ) -> BOOL; GetLengthSid( pSid: PSID, ) -> DWORD415 pub fn GetLengthSid( 416 pSid: PSID, 417 ) -> DWORD; GetPrivateObjectSecurity( ObjectDescriptor: PSECURITY_DESCRIPTOR, SecurityInformation: SECURITY_INFORMATION, ResultantDescriptor: PSECURITY_DESCRIPTOR, DescriptorLength: DWORD, ReturnLength: PDWORD, ) -> BOOL418 pub fn GetPrivateObjectSecurity( 419 ObjectDescriptor: PSECURITY_DESCRIPTOR, 420 SecurityInformation: SECURITY_INFORMATION, 421 ResultantDescriptor: PSECURITY_DESCRIPTOR, 422 DescriptorLength: DWORD, 423 ReturnLength: PDWORD, 424 ) -> BOOL; GetSecurityDescriptorControl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pControl: PSECURITY_DESCRIPTOR_CONTROL, lpdwRevision: LPDWORD, ) -> BOOL425 pub fn GetSecurityDescriptorControl( 426 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 427 pControl: PSECURITY_DESCRIPTOR_CONTROL, 428 lpdwRevision: LPDWORD, 429 ) -> BOOL; GetSecurityDescriptorDacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbDaclPresent: LPBOOL, pDacl: *mut PACL, lpbDaclDefaulted: LPBOOL, ) -> BOOL430 pub fn GetSecurityDescriptorDacl( 431 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 432 lpbDaclPresent: LPBOOL, 433 pDacl: *mut PACL, 434 lpbDaclDefaulted: LPBOOL, 435 ) -> BOOL; GetSecurityDescriptorGroup( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: *mut PSID, lpbGroupDefaulted: LPBOOL, ) -> BOOL436 pub fn GetSecurityDescriptorGroup( 437 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 438 pGroup: *mut PSID, 439 lpbGroupDefaulted: LPBOOL, 440 ) -> BOOL; GetSecurityDescriptorLength( pSecurityDescriptor: PSECURITY_DESCRIPTOR ) -> DWORD441 pub fn GetSecurityDescriptorLength( 442 pSecurityDescriptor: PSECURITY_DESCRIPTOR 443 ) -> DWORD; GetSecurityDescriptorOwner( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: *mut PSID, lpbOwnerDefaulted: LPBOOL, ) -> BOOL444 pub fn GetSecurityDescriptorOwner( 445 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 446 pOwner: *mut PSID, 447 lpbOwnerDefaulted: LPBOOL, 448 ) -> BOOL; GetSecurityDescriptorRMControl( SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR, ) -> DWORD449 pub fn GetSecurityDescriptorRMControl( 450 SecurityDescriptor: PSECURITY_DESCRIPTOR, 451 RMControl: PUCHAR, 452 ) -> DWORD; GetSecurityDescriptorSacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbSaclPresent: LPBOOL, pSacl: *mut PACL, lpbSaclDefaulted: LPBOOL, ) -> BOOL453 pub fn GetSecurityDescriptorSacl( 454 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 455 lpbSaclPresent: LPBOOL, 456 pSacl: *mut PACL, 457 lpbSaclDefaulted: LPBOOL, 458 ) -> BOOL; GetSidIdentifierAuthority( pSid: PSID, ) -> PSID_IDENTIFIER_AUTHORITY459 pub fn GetSidIdentifierAuthority( 460 pSid: PSID, 461 ) -> PSID_IDENTIFIER_AUTHORITY; GetSidLengthRequired( nSubAuthorityCount: UCHAR, ) -> DWORD462 pub fn GetSidLengthRequired( 463 nSubAuthorityCount: UCHAR, 464 ) -> DWORD; GetSidSubAuthority( pSid: PSID, nSubAuthority: DWORD, ) -> PDWORD465 pub fn GetSidSubAuthority( 466 pSid: PSID, 467 nSubAuthority: DWORD, 468 ) -> PDWORD; GetSidSubAuthorityCount( pSid: PSID, ) -> PUCHAR469 pub fn GetSidSubAuthorityCount( 470 pSid: PSID, 471 ) -> PUCHAR; GetTokenInformation( TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD, ReturnLength: PDWORD, ) -> BOOL472 pub fn GetTokenInformation( 473 TokenHandle: HANDLE, 474 TokenInformationClass: TOKEN_INFORMATION_CLASS, 475 TokenInformation: LPVOID, 476 TokenInformationLength: DWORD, 477 ReturnLength: PDWORD, 478 ) -> BOOL; GetWindowsAccountDomainSid( pSid: PSID, pDomainSid: PSID, cbDomainSid: *mut DWORD, ) -> BOOL479 pub fn GetWindowsAccountDomainSid( 480 pSid: PSID, 481 pDomainSid: PSID, 482 cbDomainSid: *mut DWORD, 483 ) -> BOOL; ImpersonateAnonymousToken( ThreadHandle: HANDLE, ) -> BOOL484 pub fn ImpersonateAnonymousToken( 485 ThreadHandle: HANDLE, 486 ) -> BOOL; ImpersonateLoggedOnUser( hToken: HANDLE, ) -> BOOL487 pub fn ImpersonateLoggedOnUser( 488 hToken: HANDLE, 489 ) -> BOOL; ImpersonateSelf( ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, ) -> BOOL490 pub fn ImpersonateSelf( 491 ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, 492 ) -> BOOL; InitializeAcl( pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD, ) -> BOOL493 pub fn InitializeAcl( 494 pAcl: PACL, 495 nAclLength: DWORD, 496 dwAclRevision: DWORD, 497 ) -> BOOL; InitializeSecurityDescriptor( pSecurityDescriptor: PSECURITY_DESCRIPTOR, dwRevision: DWORD, ) -> BOOL498 pub fn InitializeSecurityDescriptor( 499 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 500 dwRevision: DWORD, 501 ) -> BOOL; InitializeSid( Sid: PSID, pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE, ) -> BOOL502 pub fn InitializeSid( 503 Sid: PSID, 504 pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, 505 nSubAuthorityCount: BYTE, 506 ) -> BOOL; IsTokenRestricted( TokenHandle: HANDLE, ) -> BOOL507 pub fn IsTokenRestricted( 508 TokenHandle: HANDLE, 509 ) -> BOOL; IsValidAcl( pAcl: PACL, ) -> BOOL510 pub fn IsValidAcl( 511 pAcl: PACL, 512 ) -> BOOL; IsValidSecurityDescriptor( pSecurityDescriptor: PSECURITY_DESCRIPTOR, ) -> BOOL513 pub fn IsValidSecurityDescriptor( 514 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 515 ) -> BOOL; IsValidSid( pSid: PSID, ) -> BOOL516 pub fn IsValidSid( 517 pSid: PSID, 518 ) -> BOOL; IsWellKnownSid( pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE, ) -> BOOL519 pub fn IsWellKnownSid( 520 pSid: PSID, 521 WellKnownSidType: WELL_KNOWN_SID_TYPE, 522 ) -> 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, ) -> BOOL523 pub fn MakeAbsoluteSD( 524 pSelfRelativeSD: PSECURITY_DESCRIPTOR, 525 pAbsoluteSD: PSECURITY_DESCRIPTOR, 526 lpdwAbsoluteSDSize: LPDWORD, 527 pDacl: PACL, 528 lpdwDaclSize: LPDWORD, 529 pSacl: PACL, 530 lpdwSaclSize: LPDWORD, 531 pOwner: PSID, 532 lpdwOwnerSize: LPDWORD, 533 pPrimaryGroup: PSID, 534 lpdwPrimaryGroupSize: LPDWORD, 535 ) -> BOOL; MakeSelfRelativeSD( pAbsoluteSD: PSECURITY_DESCRIPTOR, pSelfRelativeSD: PSECURITY_DESCRIPTOR, lpdwBufferLength: LPDWORD, ) -> BOOL536 pub fn MakeSelfRelativeSD( 537 pAbsoluteSD: PSECURITY_DESCRIPTOR, 538 pSelfRelativeSD: PSECURITY_DESCRIPTOR, 539 lpdwBufferLength: LPDWORD, 540 ) -> BOOL; MapGenericMask( AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING, )541 pub fn MapGenericMask( 542 AccessMask: PDWORD, 543 GenericMapping: PGENERIC_MAPPING, 544 ); ObjectCloseAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: BOOL, ) -> BOOL545 pub fn ObjectCloseAuditAlarmW( 546 SubsystemName: LPCWSTR, 547 HandleId: LPVOID, 548 GenerateOnClose: BOOL, 549 ) -> BOOL; ObjectDeleteAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: BOOL, ) -> BOOL550 pub fn ObjectDeleteAuditAlarmW( 551 SubsystemName: LPCWSTR, 552 HandleId: LPVOID, 553 GenerateOnClose: BOOL, 554 ) -> 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, ) -> BOOL555 pub fn ObjectOpenAuditAlarmW( 556 SubsystemName: LPCWSTR, 557 HandleId: LPVOID, 558 ObjectTypeName: LPWSTR, 559 ObjectName: LPWSTR, 560 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 561 ClientToken: HANDLE, 562 DesiredAccess: DWORD, 563 GrantedAccess: DWORD, 564 Privileges: PPRIVILEGE_SET, 565 ObjectCreation: BOOL, 566 AccessGranted: BOOL, 567 GenerateOnClose: LPBOOL, 568 ) -> BOOL; ObjectPrivilegeAuditAlarmW( SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL, ) -> BOOL569 pub fn ObjectPrivilegeAuditAlarmW( 570 SubsystemName: LPCWSTR, 571 HandleId: LPVOID, 572 ClientToken: HANDLE, 573 DesiredAccess: DWORD, 574 Privileges: PPRIVILEGE_SET, 575 AccessGranted: BOOL, 576 ) -> BOOL; PrivilegeCheck( ClientToken: HANDLE, RequiredPrivileges: PPRIVILEGE_SET, pfResult: LPBOOL, ) -> BOOL577 pub fn PrivilegeCheck( 578 ClientToken: HANDLE, 579 RequiredPrivileges: PPRIVILEGE_SET, 580 pfResult: LPBOOL, 581 ) -> BOOL; PrivilegedServiceAuditAlarmW( SubsystemName: LPCWSTR, ServiceName: LPCWSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL, ) -> BOOL582 pub fn PrivilegedServiceAuditAlarmW( 583 SubsystemName: LPCWSTR, 584 ServiceName: LPCWSTR, 585 ClientToken: HANDLE, 586 Privileges: PPRIVILEGE_SET, 587 AccessGranted: BOOL, 588 ) -> BOOL; QuerySecurityAccessMask( SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD, )589 pub fn QuerySecurityAccessMask( 590 SecurityInformation: SECURITY_INFORMATION, 591 DesiredAccess: LPDWORD, 592 ); RevertToSelf() -> BOOL593 pub fn RevertToSelf() -> BOOL; SetAclInformation( pAcl: PACL, pAclInformation: LPVOID, nAclInformationLength: DWORD, dwAclInfomrationClass: ACL_INFORMATION_CLASS, ) -> BOOL594 pub fn SetAclInformation( 595 pAcl: PACL, 596 pAclInformation: LPVOID, 597 nAclInformationLength: DWORD, 598 dwAclInfomrationClass: ACL_INFORMATION_CLASS, 599 ) -> BOOL; SetFileSecurityW( lpFileName: LPCWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ) -> BOOL600 pub fn SetFileSecurityW( 601 lpFileName: LPCWSTR, 602 SecurityInformation: SECURITY_INFORMATION, 603 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 604 ) -> BOOL; SetKernelObjectSecurity( Handle: HANDLE, SecurityInformation: SECURITY_INFORMATION, SecurityDescriptor: PSECURITY_DESCRIPTOR, ) -> BOOL605 pub fn SetKernelObjectSecurity( 606 Handle: HANDLE, 607 SecurityInformation: SECURITY_INFORMATION, 608 SecurityDescriptor: PSECURITY_DESCRIPTOR, 609 ) -> BOOL; SetPrivateObjectSecurity( SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, GenericMapping: PGENERIC_MAPPING, Token: HANDLE, ) -> BOOL610 pub fn SetPrivateObjectSecurity( 611 SecurityInformation: SECURITY_INFORMATION, 612 ModificationDescriptor: PSECURITY_DESCRIPTOR, 613 ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 614 GenericMapping: PGENERIC_MAPPING, 615 Token: HANDLE, 616 ) -> BOOL; SetPrivateObjectSecurityEx( SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, AutoInheritFlags: ULONG, GenericMapping: PGENERIC_MAPPING, Token: HANDLE, ) -> BOOL617 pub fn SetPrivateObjectSecurityEx( 618 SecurityInformation: SECURITY_INFORMATION, 619 ModificationDescriptor: PSECURITY_DESCRIPTOR, 620 ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR, 621 AutoInheritFlags: ULONG, 622 GenericMapping: PGENERIC_MAPPING, 623 Token: HANDLE, 624 ) -> BOOL; SetSecurityAccessMask( SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD, )625 pub fn SetSecurityAccessMask( 626 SecurityInformation: SECURITY_INFORMATION, 627 DesiredAccess: LPDWORD, 628 ); SetSecurityDescriptorControl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL, ) -> BOOL629 pub fn SetSecurityDescriptorControl( 630 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 631 ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, 632 ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL, 633 ) -> BOOL; SetSecurityDescriptorDacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, bDaclPresent: BOOL, pDacl: PACL, bDaclDefaulted: BOOL, ) -> BOOL634 pub fn SetSecurityDescriptorDacl( 635 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 636 bDaclPresent: BOOL, 637 pDacl: PACL, 638 bDaclDefaulted: BOOL, 639 ) -> BOOL; SetSecurityDescriptorGroup( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: PSID, bGroupDefaulted: BOOL, ) -> BOOL640 pub fn SetSecurityDescriptorGroup( 641 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 642 pGroup: PSID, 643 bGroupDefaulted: BOOL, 644 ) -> BOOL; SetSecurityDescriptorOwner( pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: PSID, bOwnerDefaulted: BOOL, ) -> BOOL645 pub fn SetSecurityDescriptorOwner( 646 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 647 pOwner: PSID, 648 bOwnerDefaulted: BOOL, 649 ) -> BOOL; SetSecurityDescriptorRMControl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR, ) -> DWORD650 pub fn SetSecurityDescriptorRMControl( 651 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 652 RMControl: PUCHAR, 653 ) -> DWORD; SetSecurityDescriptorSacl( pSecurityDescriptor: PSECURITY_DESCRIPTOR, bSaclPresent: BOOL, pSacl: PACL, bSaclDefaulted: BOOL, ) -> BOOL654 pub fn SetSecurityDescriptorSacl( 655 pSecurityDescriptor: PSECURITY_DESCRIPTOR, 656 bSaclPresent: BOOL, 657 pSacl: PACL, 658 bSaclDefaulted: BOOL, 659 ) -> BOOL; SetTokenInformation( TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD, ) -> BOOL660 pub fn SetTokenInformation( 661 TokenHandle: HANDLE, 662 TokenInformationClass: TOKEN_INFORMATION_CLASS, 663 TokenInformation: LPVOID, 664 TokenInformationLength: DWORD, 665 ) -> BOOL; SetCachedSigningLevel( SourceFiles: PHANDLE, SourceFileCount: ULONG, Flags: ULONG, TargetFile: HANDLE, ) -> BOOL666 pub fn SetCachedSigningLevel( 667 SourceFiles: PHANDLE, 668 SourceFileCount: ULONG, 669 Flags: ULONG, 670 TargetFile: HANDLE, 671 ) -> BOOL; GetCachedSigningLevel( File: HANDLE, Flags: PULONG, SigningLevel: PULONG, Thumbprint: PUCHAR, ThumbprintSize: PULONG, ThumbprintAlgorithm: PULONG, ) -> BOOL672 pub fn GetCachedSigningLevel( 673 File: HANDLE, 674 Flags: PULONG, 675 SigningLevel: PULONG, 676 Thumbprint: PUCHAR, 677 ThumbprintSize: PULONG, 678 ThumbprintAlgorithm: PULONG, 679 ) -> BOOL; CveEventWrite( CveId: PCWSTR, AdditionalDetails: PCWSTR, ) -> LONG680 pub fn CveEventWrite( 681 CveId: PCWSTR, 682 AdditionalDetails: PCWSTR, 683 ) -> LONG; DeriveCapabilitySidsFromName( CapName: LPCWSTR, CapabilityGroupSids: *mut *mut PSID, CapabilityGroupSidCount: *mut DWORD, CapabilitySids: *mut *mut PSID, CapabilitySidCount: *mut DWORD, ) -> BOOL684 pub fn DeriveCapabilitySidsFromName( 685 CapName: LPCWSTR, 686 CapabilityGroupSids: *mut *mut PSID, 687 CapabilityGroupSidCount: *mut DWORD, 688 CapabilitySids: *mut *mut PSID, 689 CapabilitySidCount: *mut DWORD, 690 ) -> BOOL; 691 } 692