mirror of
https://github.com/decompals/wibo.git
synced 2025-12-12 14:46:09 +00:00
Split advapi32 into separate files (part 2) & more impls for ee-gcc/cygwin
This commit is contained in:
109
dll/advapi32/securitybaseapi.h
Normal file
109
dll/advapi32/securitybaseapi.h
Normal file
@@ -0,0 +1,109 @@
|
||||
#pragma once
|
||||
|
||||
#include "common.h"
|
||||
|
||||
struct ACL {
|
||||
BYTE AclRevision;
|
||||
BYTE Sbz1;
|
||||
WORD AclSize;
|
||||
WORD AceCount;
|
||||
WORD Sbz2;
|
||||
};
|
||||
|
||||
struct ACE_HEADER {
|
||||
BYTE AceType;
|
||||
BYTE AceFlags;
|
||||
WORD AceSize;
|
||||
};
|
||||
|
||||
struct ACCESS_ALLOWED_ACE {
|
||||
ACE_HEADER Header;
|
||||
DWORD Mask;
|
||||
DWORD SidStart;
|
||||
};
|
||||
|
||||
struct SID_IDENTIFIER_AUTHORITY {
|
||||
BYTE Value[6];
|
||||
};
|
||||
|
||||
struct SECURITY_DESCRIPTOR {
|
||||
BYTE Revision;
|
||||
BYTE Sbz1;
|
||||
WORD Control;
|
||||
void *Owner;
|
||||
void *Group;
|
||||
ACL *Sacl;
|
||||
ACL *Dacl;
|
||||
};
|
||||
|
||||
using PSECURITY_DESCRIPTOR = SECURITY_DESCRIPTOR *;
|
||||
using PACL = ACL *;
|
||||
using PSID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY *;
|
||||
using SECURITY_INFORMATION = DWORD;
|
||||
|
||||
constexpr DWORD SECURITY_DESCRIPTOR_REVISION = 1;
|
||||
constexpr WORD SE_DACL_PRESENT = 0x0004;
|
||||
constexpr WORD SE_DACL_DEFAULTED = 0x0008;
|
||||
|
||||
constexpr BYTE ACL_REVISION1 = 1;
|
||||
constexpr BYTE ACL_REVISION2 = 2;
|
||||
constexpr BYTE ACL_REVISION3 = 3;
|
||||
constexpr BYTE ACL_REVISION4 = 4;
|
||||
constexpr BYTE ACL_REVISION = ACL_REVISION2;
|
||||
constexpr BYTE ACL_REVISION_DS = ACL_REVISION4;
|
||||
constexpr BYTE ACCESS_ALLOWED_ACE_TYPE = 0x00;
|
||||
constexpr BYTE SID_MAX_SUB_AUTHORITIES = 15;
|
||||
|
||||
struct TOKEN_PRIVILEGES;
|
||||
using PTOKEN_PRIVILEGES = TOKEN_PRIVILEGES *;
|
||||
|
||||
enum TOKEN_INFORMATION_CLASS : DWORD {
|
||||
TokenUser = 1,
|
||||
TokenGroups,
|
||||
TokenPrivileges,
|
||||
TokenOwner,
|
||||
TokenPrimaryGroup,
|
||||
TokenDefaultDacl,
|
||||
TokenSource,
|
||||
TokenType,
|
||||
TokenImpersonationLevel,
|
||||
TokenStatistics,
|
||||
TokenRestrictedSids,
|
||||
TokenSessionId,
|
||||
TokenGroupsAndPrivileges,
|
||||
TokenSessionReference,
|
||||
TokenSandBoxInert,
|
||||
TokenAuditPolicy,
|
||||
TokenOrigin,
|
||||
TokenElevationType,
|
||||
TokenLinkedToken,
|
||||
TokenElevation = 20,
|
||||
};
|
||||
|
||||
namespace advapi32 {
|
||||
|
||||
BOOL WIN_FUNC InitializeAcl(PACL pAcl, DWORD nAclLength, DWORD dwAclRevision);
|
||||
BOOL WIN_FUNC AddAccessAllowedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid);
|
||||
BOOL WIN_FUNC FindFirstFreeAce(PACL pAcl, LPVOID *pAce);
|
||||
PSID_IDENTIFIER_AUTHORITY WIN_FUNC GetSidIdentifierAuthority(PSID pSid);
|
||||
PUCHAR WIN_FUNC GetSidSubAuthorityCount(PSID pSid);
|
||||
PDWORD WIN_FUNC GetSidSubAuthority(PSID pSid, DWORD nSubAuthority);
|
||||
BOOL WIN_FUNC ImpersonateLoggedOnUser(HANDLE hToken);
|
||||
BOOL WIN_FUNC DuplicateTokenEx(HANDLE hExistingToken, DWORD dwDesiredAccess, void *lpTokenAttributes,
|
||||
DWORD ImpersonationLevel, DWORD TokenType, PHANDLE phNewToken);
|
||||
BOOL WIN_FUNC CopySid(DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid);
|
||||
BOOL WIN_FUNC GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbDaclPresent, PACL *pDacl,
|
||||
LPBOOL lpbDaclDefaulted);
|
||||
BOOL WIN_FUNC SetKernelObjectSecurity(HANDLE Handle, SECURITY_INFORMATION SecurityInformation,
|
||||
PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||
BOOL WIN_FUNC InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision);
|
||||
BOOL WIN_FUNC SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bDaclPresent, PACL pDacl,
|
||||
BOOL bDaclDefaulted);
|
||||
BOOL WIN_FUNC GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass,
|
||||
LPVOID TokenInformation, DWORD TokenInformationLength, LPDWORD ReturnLength);
|
||||
BOOL WIN_FUNC AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState,
|
||||
DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, LPDWORD ReturnLength);
|
||||
BOOL WIN_FUNC SetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass,
|
||||
LPVOID TokenInformation, DWORD TokenInformationLength);
|
||||
|
||||
} // namespace advapi32
|
||||
Reference in New Issue
Block a user