153#define ADS_RIGHT_DS_CREATE_CHILD 0x0001
154#define ADS_RIGHT_DS_DELETE_CHILD 0x0002
155#define ADS_RIGHT_ACTRL_DS_LIST 0x0004
156#define ADS_RIGHT_DS_SELF 0x0008
157#define ADS_RIGHT_DS_READ_PROP 0x0010
158#define ADS_RIGHT_DS_WRITE_PROP 0x0020
159#define ADS_RIGHT_DS_DELETE_TREE 0x0040
160#define ADS_RIGHT_DS_LIST_OBJECT 0x0080
161#define ADS_RIGHT_DS_CONTROL_ACCESS 0x0100
257 if (!ServerName || !ServerName[0])
262 if (
Result && (ServerName[0] ==
'\\') && (ServerName[1] ==
'\\'))
280 DWORD SubAuthority[4];
284 memcpy(
sid, &computer_sid,
sizeof(computer_sid) );
307 WARN(
"NtOpenProcessToken failed! Status %08x\n",
Status);
375 BOOL DisableAllPrivileges,
384 DisableAllPrivileges,
557 if (SidsToDisable !=
NULL)
560 if (DisableSids ==
NULL)
576 if (PrivilegesToDelete !=
NULL)
579 if (DeletePrivileges ==
NULL)
596 if (SidsToRestrict !=
NULL)
599 if (RestrictedSids ==
NULL)
608 RestrictedSids->
GroupCount = RestrictedSidCount;
639 if (DisableSids !=
NULL)
644 if (DeletePrivileges !=
NULL)
649 if (RestrictedSids !=
NULL)
675 BYTE nSubAuthorityCount,
683 pIdentifierAuthority, nSubAuthorityCount,
684 nSubAuthority0, nSubAuthority1, nSubAuthority2, nSubAuthority3,
685 nSubAuthority4, nSubAuthority5, nSubAuthority6, nSubAuthority7,
769 if (*
cbSid < output_sid_length)
771 *
cbSid = output_sid_length;
783 *
cbSid = output_sid_length;
864 BYTE nSubAuthorityCount)
869 pIdentifierAuthority,
952 LPDWORD lpdwAbsoluteSecurityDescriptorSize,
965 pAbsoluteSecurityDescriptor,
966 lpdwAbsoluteSecurityDescriptorSize,
974 lpdwPrimaryGroupSize);
994 TRACE(
"(%p,0x%08x,%p,0x%08x,%p)\n",
Handle, RequestedInformation,
995 pSecurityDescriptor,
nLength, lpnLengthNeeded);
1008 DWORD dwAclRevision)
1028 TRACE(
"(%p)\n", hNamedPipe);
1143 DWORD dwStartingAceIndex,
1145 DWORD nAceListLength)
1197 DWORD nAclInformationLength,
1201 nAclInformationLength, dwAclInformationClass));
1389 RequestedInformation,
1390 pSecurityDescriptor,
1417 TRACE(
"GetFileSecurityW() called\n");
1426 ERR(
"Invalid path\n");
1450 ERR(
"NtOpenFile() failed (Status %lx)\n",
Status);
1456 RequestedInformation,
1457 pSecurityDescriptor,
1463 ERR(
"NtQuerySecurityObject() failed (Status %lx)\n",
Status);
1494 pSecurityDescriptor);
1520 TRACE(
"SetFileSecurityW() called\n");
1529 ERR(
"Invalid path\n");
1553 ERR(
"NtOpenFile() failed (Status %lx)\n",
Status);
1560 pSecurityDescriptor);
1565 ERR(
"NtSetSecurityObject() failed (Status %lx)\n",
Status);
1599 FIXME(
"(0x%08x,0x%08x,0x%08x,0x%08x):stub\n",
x1,
x2,x3,x4);
1668 (
PULONG)PrivilegeSetLength,
1788 ObjectTypeListLength,
1895 DWORD ResultListIndex;
1903 ObjectTypeListLength,
1915 for (ResultListIndex = 0; ResultListIndex < ObjectTypeListLength; ResultListIndex++)
2017 LPDWORD hReferencedDomainNameLength,
2031 *hReferencedDomainNameLength *
sizeof(
WCHAR));
2037 lpReferencedDomainNameW,
2038 hReferencedDomainNameLength,
2041 if (
ret && lpReferencedDomainNameW)
2045 lpReferencedDomainNameW,
2046 *hReferencedDomainNameLength + 1,
2048 *hReferencedDomainNameLength + 1,
2132 DWORD AccessPermissions,
2154 DWORD AccessPermissions,
2176 DWORD ObjectsPresent = 0;
2212 DWORD ObjectsPresent = 0;
2251 DWORD ObjectsPresent = 0;
2300 DWORD ObjectsPresent = 0;
2408 TRACE(
"(%p)\n", pTrustee);
2421 TRACE(
"(%p)\n", pTrustee);
2473 DWORD nAclInformationLength,
2480 nAclInformationLength,
2481 dwAclInformationClass);
2559 while (*szAcl && *szAcl !=
'(')
2565 else if (*szAcl ==
'A')
2570 else if (*szAcl ==
'I')
2605 while (*szAcl ==
' ')
2608 while (lpaf->
wstr &&
2616 *StringAcl = szAcl +
len;
2642 while (*szAcl ==
' ')
2645 while (*szAcl !=
';')
2649 while (lpaf->
wstr &&
2713 while (*szAcl ==
' ')
2716 if ((*szAcl ==
'0') && (*(szAcl + 1) ==
'x'))
2720 while (*
p && *
p !=
';')
2723 if (
p - szAcl <= 10 )
2733 while (*szAcl !=
';')
2737 while (lpaf->
wstr &&
2747 rights |= lpaf->
value;
2785 while (*StringAcl ==
'(')
2793 if (*StringAcl !=
';')
2804 if (*StringAcl !=
';')
2812 if (*StringAcl !=
';')
2817 while (*StringAcl ==
' ')
2819 if (*StringAcl !=
';')
2821 FIXME(
"Support for *_OBJECT_ACE_TYPE not implemented\n");
2827 while (*StringAcl ==
' ')
2829 if (*StringAcl !=
';')
2831 FIXME(
"Support for *_OBJECT_ACE_TYPE not implemented\n");
2839 while (*StringAcl && *StringAcl !=
')')
2843 if (*StringAcl !=
')')
2861 ERR(
"ACL too large\n");
2877 WARN(
"Invalid ACE string format\n");
2885 LPCWSTR StringSecurityDescriptor,
2903 while (*StringSecurityDescriptor ==
' ')
2904 StringSecurityDescriptor++;
2906 while (*StringSecurityDescriptor)
2908 toktype = *StringSecurityDescriptor;
2911 StringSecurityDescriptor++;
2912 if (*StringSecurityDescriptor !=
':')
2917 StringSecurityDescriptor++;
2920 lptoken = StringSecurityDescriptor;
2921 while (*lptoken && *lptoken !=
':')
2927 len = lptoken - StringSecurityDescriptor;
3010 FIXME(
"Unknown token\n");
3015 StringSecurityDescriptor = lptoken;
3033 DWORD StringSDRevision,
3035 PULONG SecurityDescriptorSize)
3039 LPWSTR StringSecurityDescriptorW;
3044 if (StringSecurityDescriptorW)
3050 SecurityDescriptorSize);
3063 DWORD StringSDRevision,
3065 PULONG SecurityDescriptorSize)
3095 if (!psd)
goto lend;
3107 if (SecurityDescriptorSize)
3108 *SecurityDescriptorSize = cBytes;
3113 TRACE(
" ret=%d\n", bret);
3135 WCHAR fmt[] = {
'S',
'-',
'%',
'u',
'-',
'%',
'd',0 };
3136 WCHAR subauthfmt[] = {
'-',
'%',
'u',0 };
3149 FIXME(
"not matching MS' bugs\n");
3223 static const WCHAR fmtW[] = {
'0',
'x',
'%',
'x',0};
3243 for (
i = 0;
i < 32;
i++)
3255 for (
i = 0;
i < 32;
i++)
3256 if (
mask & (1 <<
i))
3263 static const WCHAR openbr =
'(';
3264 static const WCHAR closebr =
')';
3265 static const WCHAR semicolon =
';';
3343 if (!
DumpAce(ace, pwptr, plen))
3363 if (!
DumpSid(psid, pwptr, plen))
3381 if (!
DumpSid(psid, pwptr, plen))
3388 static const WCHAR dacl[] = {
'D',
':',0};
3390 BOOL present, defaulted;
3411 static const WCHAR sacl[] = {
'S',
':',0};
3413 BOOL present, defaulted;
3442 ERR(
"Program requested unknown SDDL revision %d\n", SDRevision);
3490 *OutputString = wstr;
3492 *OutputLen =
strlenW(*OutputString)+1;
3510 if (*OutputString ==
NULL)
3520 if (OutputLen !=
NULL)
3526 *OutputString =
NULL;
3544 else if (!StringSid || !
Sid)
3567 else if (!StringSid || !
Sid)
3588 WCHAR FixedBuffer[64];
3612 if (
NULL == *StringSid)
3657 if (
NULL == *StringSid)
3685 if (pEnvironment ==
NULL)
3708 if (pEnvironment ==
NULL)
3747 TRACE(
"CreateProcessWithLogonW(%s %s %s 0x%08x %s %s 0x%08x %p %s %p %p)\n",
debugstr_w(lpUsername),
debugstr_w(lpDomain),
3750 lpStartupInfo, lpProcessInformation);
3755 L"\\pipe\\seclogon",
3760 WARN(
"RpcStringBindingCompose returned 0x%x\n",
Status);
3770 WARN(
"RpcBindingFromStringBinding returned 0x%x\n",
Status);
3776 WARN(
"RpcStringFree returned 0x%x\n",
Status);
3790 Request.Environment = lpEnvironment;
3792 TRACE(
"Request.dwEnvironmentSize %lu\n",
Request.dwEnvironmentSize);
3793 TRACE(
"Request.Environment %p\n",
Request.Environment);
3795 Request.dwLogonFlags = dwLogonFlags;
3796 Request.dwCreationFlags = dwCreationFlags;
3799 TRACE(
"Request.dwProcessId %lu\n",
Request.dwProcessId);
3822 WARN(
"RpcBindingFree returned 0x%x\n",
Status);
3836 TRACE(
"CreateProcessWithLogonW() done\n");
3845 FIXME(
"%p 0x%08x %s %s 0x%08x %p %s %p %p - semi-stub\n",
token,
3847 creation_flags, environment,
debugstr_w(current_directory),
3848 startup_info, process_information);
3852 current_directory, startup_info, process_information );
3870 TRACE(
"%p 0x%08x 0x%08x 0x%08x %p\n", ExistingTokenHandle, dwDesiredAccess,
3878 if (lpTokenAttributes !=
NULL)
3882 lpTokenAttributes->bInheritHandle ?
OBJ_INHERIT : 0,
3884 lpTokenAttributes->lpSecurityDescriptor);
3902 DuplicateTokenHandle);
3905 ERR(
"NtDuplicateToken failed: Status %08x\n",
Status);
3910 TRACE(
"Returning token %p.\n", *DuplicateTokenHandle);
3928 DuplicateTokenHandle);
3936 if (StringSid[0] ==
'S' && StringSid[1] ==
'-')
3941 if (*StringSid ==
'-')
3982 TRACE(
"StringSid is NULL, returning FALSE\n");
3986 while (*StringSid ==
' ')
3995 TRACE(
"only size requested, returning TRUE with %d\n", *cBytes);
3999 if (StringSid[0] ==
'S' && StringSid[1] ==
'-')
4014 TRACE(
"SubAuthorityCount is 0\n");
4021 while (*StringSid && *StringSid !=
'-')
4023 if (*StringSid ==
'-')
4031 identAuth =
atoiW(StringSid);
4038 while (*StringSid && *StringSid !=
'-')
4040 if (*StringSid ==
'-')
4047 while (*StringSid && *StringSid !=
'-')
4049 if (*StringSid ==
'-')
4091 TRACE(
"returning %s\n", bret ?
"TRUE" :
"FALSE");
4115 TRACE(
"%s %d %d %p %p %p %p %p\n", pObjectName,
ObjectType, SecurityInfo,
4116 ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor);
4126 ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor );
4139 DWORD required_size;
4142 FIXME(
"(%p %p %p): semi-stub\n",
sid, domain_sid,
size );
4163 if (*
size < required_size || !domain_sid)
4165 *
size = required_size;
4172 for (
i = 0;
i < 4;
i++)
4175 *
size = required_size;
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
static GENERIC_MAPPING GenericMapping
enum _ACCESS_MODE ACCESS_MODE
enum _TRUSTEE_FORM TRUSTEE_FORM
enum _TRUSTEE_TYPE TRUSTEE_TYPE
@ TRUSTEE_IS_OBJECTS_AND_SID
@ TRUSTEE_IS_OBJECTS_AND_NAME
enum _SE_OBJECT_TYPE SE_OBJECT_TYPE
NTSTATUS NTAPI NtAccessCheck(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_ HANDLE ClientToken, _In_ ACCESS_MASK DesiredAccess, _In_ PGENERIC_MAPPING GenericMapping, _Out_writes_bytes_(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet, _Inout_ PULONG PrivilegeSetLength, _Out_ PACCESS_MASK GrantedAccess, _Out_ PNTSTATUS AccessStatus)
Determines whether security access can be granted to a client that requests such access on an object.
NTSTATUS NTAPI NtAccessCheckByType(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_opt_ PSID PrincipalSelfSid, _In_ HANDLE ClientToken, _In_ ACCESS_MASK DesiredAccess, _In_reads_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList, _In_ ULONG ObjectTypeListLength, _In_ PGENERIC_MAPPING GenericMapping, _Out_writes_bytes_(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet, _Inout_ PULONG PrivilegeSetLength, _Out_ PACCESS_MASK GrantedAccess, _Out_ PNTSTATUS AccessStatus)
Determines whether security access can be granted to a client that requests such access on the object...
NTSTATUS NTAPI NtAccessCheckByTypeResultList(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_opt_ PSID PrincipalSelfSid, _In_ HANDLE ClientToken, _In_ ACCESS_MASK DesiredAccess, _In_reads_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList, _In_ ULONG ObjectTypeListLength, _In_ PGENERIC_MAPPING GenericMapping, _Out_writes_bytes_(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet, _Inout_ PULONG PrivilegeSetLength, _Out_writes_(ObjectTypeListLength) PACCESS_MASK GrantedAccess, _Out_writes_(ObjectTypeListLength) PNTSTATUS AccessStatus)
Determines whether security access can be granted to a client that requests such access on the object...
ACPI_SIZE strlen(const char *String)
static unsigned char bytes[4]
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
VOID __stdcall SeclCreateProcessWithLogonW(_In_ handle_t hBinding, _In_ SECL_REQUEST *pRequest, _Out_ SECL_RESPONSE *pResponse)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
SIZE_T LPPROCESS_INFORMATION
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
#define NT_SUCCESS(StatCode)
BOOL WINAPI LookupAccountNameW(LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse)
DWORD WINAPI GetNamedSecurityInfoW(LPWSTR pObjectName, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PSID *ppsidOwner, PSID *ppsidGroup, PACL *ppDacl, PACL *ppSacl, PSECURITY_DESCRIPTOR *ppSecurityDescriptor)
BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR lpSystemName, LPCWSTR lpName, LPWSTR lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId)
BOOL WINAPI LookupPrivilegeNameW(LPCWSTR lpSystemName, PLUID lpLuid, LPWSTR lpName, LPDWORD cchName)
DWORD WINAPI SetNamedSecurityInfoW(LPWSTR pObjectName, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PSID psidOwner, PSID psidGroup, PACL pDacl, PACL pSacl)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
BOOL WINAPI GetAclInformation(PACL pAcl, LPVOID pAclInformation, DWORD nAclInformationLength, ACL_INFORMATION_CLASS dwAclInformationClass)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
static DWORD GetAnsiEnvironmentSize(PVOID pEnvironment)
#define ADS_RIGHT_DS_LIST_OBJECT
BOOL WINAPI LookupAccountNameA(LPCSTR SystemName, LPCSTR AccountName, PSID Sid, LPDWORD SidLength, LPSTR ReferencedDomainName, LPDWORD hReferencedDomainNameLength, PSID_NAME_USE SidNameUse)
static BOOL DumpSacl(PSECURITY_DESCRIPTOR SecurityDescriptor, WCHAR **pwptr, ULONG *plen)
static const WCHAR SDDL_AUDIT_FAILURE[]
BOOL WINAPI PrivilegeCheck(HANDLE ClientToken, PPRIVILEGE_SET RequiredPrivileges, LPBOOL pfResult)
static const ACEFLAG AceFlags[]
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorA(PSECURITY_DESCRIPTOR SecurityDescriptor, DWORD SDRevision, SECURITY_INFORMATION Information, LPSTR *OutputString, PULONG OutputLen)
static const WELLKNOWNRID WellKnownRids[]
BOOL WINAPI CreateRestrictedToken(_In_ HANDLE ExistingTokenHandle, _In_ DWORD Flags, _In_ DWORD DisableSidCount, _In_reads_opt_(DisableSidCount) PSID_AND_ATTRIBUTES SidsToDisable, _In_ DWORD DeletePrivilegeCount, _In_reads_opt_(DeletePrivilegeCount) PLUID_AND_ATTRIBUTES PrivilegesToDelete, _In_ DWORD RestrictedSidCount, _In_reads_opt_(RestrictedSidCount) PSID_AND_ATTRIBUTES SidsToRestrict, _Outptr_ PHANDLE NewTokenHandle)
Creates a filtered token that is a restricted one of the regular access token. A restricted token can...
BOOL WINAPI SetAclInformation(PACL pAcl, LPVOID pAclInformation, DWORD nAclInformationLength, ACL_INFORMATION_CLASS dwAclInformationClass)
BOOL WINAPI DuplicateToken(IN HANDLE ExistingTokenHandle, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, OUT PHANDLE DuplicateTokenHandle)
BOOL WINAPI ConvertStringSidToSidW(LPCWSTR StringSid, PSID *Sid)
BOOL WINAPI ConvertSidToStringSidW(PSID Sid, LPWSTR *StringSid)
BOOL WINAPI SetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength)
static DWORD ParseAclStringFlags(LPCWSTR *StringAcl)
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(LPCSTR StringSecurityDescriptor, DWORD StringSDRevision, PSECURITY_DESCRIPTOR *SecurityDescriptor, PULONG SecurityDescriptorSize)
BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR lpSystemName, LPCSTR lpName, LPSTR lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId)
TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W pTrustee)
static const ACEFLAG AceRights[]
static BYTE ParseAceStringFlags(LPCWSTR *StringAcl)
static const WCHAR SDDL_CONTAINER_INHERIT[]
static BOOL ParseStringSidToSid(LPCWSTR StringSid, PSID pSid, LPDWORD cBytes)
BOOL WINAPI InitializeSid(PSID Sid, PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount)
struct _ACEFLAG * LPACEFLAG
BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorW(PSECURITY_DESCRIPTOR SecurityDescriptor, DWORD SDRevision, SECURITY_INFORMATION RequestedInformation, LPWSTR *OutputString, PULONG OutputLen)
static const WCHAR SDDL_AUDIT[]
static LPWSTR SERV_dup(LPCSTR str)
static BOOL DumpGroup(PSECURITY_DESCRIPTOR SecurityDescriptor, WCHAR **pwptr, ULONG *plen)
static BOOL DumpAce(LPVOID pace, WCHAR **pwptr, ULONG *plen)
DWORD WINAPI GetSecurityInfoExA(HANDLE hObject, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, LPCSTR lpProvider, LPCSTR lpProperty, PACTRL_ACCESSA *ppAccessList, PACTRL_AUDITA *ppAuditList, LPSTR *lppOwner, LPSTR *lppGroup)
static BOOL ParseStringSecurityDescriptorToSecurityDescriptor(LPCWSTR StringSecurityDescriptor, SECURITY_DESCRIPTOR_RELATIVE *SecurityDescriptor, LPDWORD cBytes)
BOOL WINAPI ConvertStringSidToSidA(LPCSTR StringSid, PSID *Sid)
BOOL WINAPI EqualPrefixSid(PSID pSid1, PSID pSid2)
#define ADS_RIGHT_DS_DELETE_TREE
#define ADS_RIGHT_ACTRL_DS_LIST
VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A pTrustee, PSID pSid)
DWORD WINAPI GetSecurityInfoExW(HANDLE hObject, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, LPCWSTR lpProvider, LPCWSTR lpProperty, PACTRL_ACCESSW *ppAccessList, PACTRL_AUDITW *ppAuditList, LPWSTR *lppOwner, LPWSTR *lppGroup)
LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W pTrustee)
static const WCHAR SDDL_NO_WRITE_UP[]
BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
BOOL WINAPI AddAccessDeniedAceEx(PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, PSID pSid)
static const WCHAR SDDL_OBJECT_AUDIT[]
BOOL WINAPI AddAce(PACL pAcl, DWORD dwAceRevision, DWORD dwStartingAceIndex, LPVOID pAceList, DWORD nAceListLength)
BOOL WINAPI AccessCheckByType(_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor, _In_opt_ PSID PrincipalSelfSid, _In_ HANDLE ClientToken, _In_ DWORD DesiredAccess, _In_reads_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList, _In_ DWORD ObjectTypeListLength, _In_ PGENERIC_MAPPING GenericMapping, _Out_writes_bytes_(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet, _Inout_ LPDWORD PrivilegeSetLength, _Out_ LPDWORD GrantedAccess, _Out_ LPBOOL AccessStatus)
Determines whether security access can be granted to a client that requests such access on the object...
static BOOL DumpOwner(PSECURITY_DESCRIPTOR SecurityDescriptor, WCHAR **pwptr, ULONG *plen)
static const WCHAR SDDL_OBJECT_INHERIT[]
static void DumpString(LPCWSTR string, int cch, WCHAR **pwptr, ULONG *plen)
BOOL WINAPI DeleteAce(PACL pAcl, DWORD dwAceIndex)
TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A pTrustee)
BOOL WINAPI AccessCheckByTypeResultList(_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor, _In_opt_ PSID PrincipalSelfSid, _In_ HANDLE ClientToken, _In_ DWORD DesiredAccess, _In_reads_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList, _In_ DWORD ObjectTypeListLength, _In_ PGENERIC_MAPPING GenericMapping, _Out_writes_bytes_(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet, _Inout_ LPDWORD PrivilegeSetLength, _Out_writes_(ObjectTypeListLength) LPDWORD GrantedAccess, _Out_writes_(ObjectTypeListLength) LPBOOL AccessStatus)
Determines whether security access can be granted to a client that requests such access on the object...
static BOOL DumpSid(PSID psid, WCHAR **pwptr, ULONG *plen)
BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, LPDWORD lpdwAbsoluteSecurityDescriptorSize, PACL pDacl, LPDWORD lpdwDaclSize, PACL pSacl, LPDWORD lpdwSaclSize, PSID pOwner, LPDWORD lpdwOwnerSize, PSID pPrimaryGroup, LPDWORD lpdwPrimaryGroupSize)
#define ADS_RIGHT_DS_CREATE_CHILD
PDWORD WINAPI GetSidSubAuthority(PSID pSid, DWORD nSubAuthority)
static const WCHAR SDDL_ACCESS_ALLOWED[]
static const WCHAR SDDL_OBJECT_ACCESS_DENIED[]
LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A pTrustee)
static BOOL DumpSidNumeric(PSID psid, WCHAR **pwptr, ULONG *plen)
BOOL WINAPI SetFileSecurityW(LPCWSTR lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA pExplicitAccess, LPSTR pTrusteeName, DWORD AccessPermissions, ACCESS_MODE AccessMode, DWORD Inheritance)
#define ADS_RIGHT_DS_READ_PROP
BOOL WINAPI SetThreadToken(IN PHANDLE ThreadHandle OPTIONAL, IN HANDLE TokenHandle)
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
DWORD WINAPI GetSidLengthRequired(UCHAR nSubAuthorityCount)
BOOL WINAPI IsValidSid(PSID pSid)
static const WCHAR SDDL_INHERIT_ONLY[]
#define ADS_RIGHT_DS_DELETE_CHILD
BOOL WINAPI SynchronizeWindows31FilesAndWindowsNTRegistry(DWORD x1, DWORD x2, DWORD x3, DWORD x4)
BOOL WINAPI AreAnyAccessesGranted(DWORD GrantedAccess, DWORD DesiredAccess)
BOOL WINAPI IsWellKnownSid(IN PSID pSid, IN WELL_KNOWN_SID_TYPE WellKnownSidType)
VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEEW pTrustee, POBJECTS_AND_NAME_W pObjName, SE_OBJECT_TYPE ObjectType, LPWSTR ObjectTypeName, LPWSTR InheritedObjectTypeName, LPWSTR Name)
BOOL WINAPI CopySid(DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid)
static const WCHAR SDDL_INHERITED[]
static const WCHAR SDDL_ACCESS_DENIED[]
BOOL WINAPI AddAuditAccessAce(PACL pAcl, DWORD dwAceRevision, DWORD dwAccessMask, PSID pSid, BOOL bAuditSuccess, BOOL bAuditFailure)
BOOL WINAPI AllocateLocallyUniqueId(PLUID Luid)
PUCHAR WINAPI GetSidSubAuthorityCount(PSID pSid)
BOOL WINAPI GetKernelObjectSecurity(HANDLE Handle, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded)
static DWORD GetUnicodeEnvironmentSize(PVOID pEnvironment)
BOOL WINAPI InitializeAcl(PACL pAcl, DWORD nAclLength, DWORD dwAclRevision)
#define ADS_RIGHT_DS_CONTROL_ACCESS
BOOL WINAPI ImpersonateNamedPipeClient(HANDLE hNamedPipe)
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESSW pExplicitAccess, LPWSTR pTrusteeName, DWORD AccessPermissions, ACCESS_MODE AccessMode, DWORD Inheritance)
static DWORD ComputeStringSidSize(LPCWSTR StringSid)
static const WCHAR SDDL_OBJECT_ALARM[]
VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEEW pTrustee, POBJECTS_AND_SID pObjSid, GUID *pObjectGuid, GUID *pInheritedObjectGuid, PSID pSid)
static const WCHAR SDDL_MANDATORY_LABEL[]
static const WCHAR SDDL_ALARM[]
static const WCHAR SDDL_OBJECT_ACCESS_ALLOWED[]
BOOL WINAPI AddAccessAllowedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid)
static const SID sidWorld
BOOL WINAPI AddAccessAllowedAceEx(PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, PSID pSid)
BOOL ADVAPI_IsLocalComputer(LPCWSTR ServerName)
VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEEA pTrustee, POBJECTS_AND_NAME_A pObjName, SE_OBJECT_TYPE ObjectType, LPSTR ObjectTypeName, LPSTR InheritedObjectTypeName, LPSTR Name)
DWORD WINAPI GetLengthSid(PSID pSid)
BOOL WINAPI QueryWindows31FilesMigration(DWORD x1)
static const WCHAR SDDL_NO_PROPAGATE[]
VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A pTrustee, LPSTR name)
static const WELLKNOWNSID WellKnownSids[]
BOOL WINAPI OpenThreadToken(HANDLE ThreadHandle, DWORD DesiredAccess, BOOL OpenAsSelf, HANDLE *TokenHandle)
PVOID WINAPI FreeSid(PSID pSid)
BOOL WINAPI ConvertSidToStringSidA(PSID Sid, LPSTR *StringSid)
BOOL WINAPI SetFileSecurityA(LPCSTR lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
BOOL WINAPI GetWindowsAccountDomainSid(PSID sid, PSID domain_sid, DWORD *size)
static const WCHAR SDDL_NO_EXECUTE_UP[]
#define ADS_RIGHT_DS_WRITE_PROP
BOOL WINAPI CreateProcessWithTokenW(HANDLE token, DWORD logon_flags, LPCWSTR application_name, LPWSTR command_line, DWORD creation_flags, void *environment, LPCWSTR current_directory, STARTUPINFOW *startup_info, PROCESS_INFORMATION *process_information)
BOOL WINAPI EqualSid(PSID pSid1, PSID pSid2)
BOOL WINAPI AccessCheck(IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN HANDLE ClientToken, IN DWORD DesiredAccess, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet OPTIONAL, IN OUT LPDWORD PrivilegeSetLength, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus)
static void DumpRights(DWORD mask, WCHAR **pwptr, ULONG *plen)
static __inline BOOL set_ntstatus(NTSTATUS status)
BOOL WINAPI DuplicateTokenEx(IN HANDLE ExistingTokenHandle, IN DWORD dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpTokenAttributes OPTIONAL, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, IN TOKEN_TYPE TokenType, OUT PHANDLE DuplicateTokenHandle)
static const char * debugstr_sid(PSID sid)
BOOL WINAPI AdjustTokenGroups(HANDLE TokenHandle, BOOL ResetToDefault, PTOKEN_GROUPS NewState, DWORD BufferLength, PTOKEN_GROUPS PreviousState, PDWORD ReturnLength)
BOOL WINAPI GetFileSecurityW(LPCWSTR lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded)
static const ACEFLAG AceType[]
DWORD WINAPI GetNamedSecurityInfoA(LPSTR pObjectName, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PSID *ppsidOwner, PSID *ppsidGroup, PACL *ppDacl, PACL *ppSacl, PSECURITY_DESCRIPTOR *ppSecurityDescriptor)
static BOOL DumpAcl(PACL pacl, WCHAR **pwptr, ULONG *plen, BOOL protected, BOOL autoInheritReq, BOOL autoInherited)
static BYTE ParseAceStringType(LPCWSTR *StringAcl)
BOOL WINAPI GetFileSecurityA(LPCSTR lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded)
DWORD WINAPI SetNamedSecurityInfoA(LPSTR pObjectName, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PSID psidOwner, PSID psidGroup, PACL pDacl, PACL pSacl)
PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID pSid)
BOOL WINAPI AreAllAccessesGranted(DWORD GrantedAccess, DWORD DesiredAccess)
TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEEA pTrustee)
VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W pTrustee, PSID pSid)
VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEEA pTrustee, POBJECTS_AND_SID pObjSid, GUID *pObjectGuid, GUID *pInheritedObjectGuid, PSID pSid)
BOOL ADVAPI_GetComputerSid(PSID sid)
BOOL WINAPI EqualDomainSid(IN PSID pSid1, IN PSID pSid2, OUT BOOL *pfEqual)
BOOL WINAPI FindFirstFreeAce(PACL pAcl, LPVOID *pAce)
BOOL WINAPI GetAce(PACL pAcl, DWORD dwAceIndex, LPVOID *pAce)
BOOL WINAPI CreateProcessWithLogonW(_In_ LPCWSTR lpUsername, _In_opt_ LPCWSTR lpDomain, _In_ LPCWSTR lpPassword, _In_ DWORD dwLogonFlags, _In_opt_ LPCWSTR lpApplicationName, _Inout_opt_ LPWSTR lpCommandLine, _In_ DWORD dwCreationFlags, _In_opt_ LPVOID lpEnvironment, _In_opt_ LPCWSTR lpCurrentDirectory, _In_ LPSTARTUPINFOW lpStartupInfo, _Out_ LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI AddAccessDeniedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid)
BOOL WINAPI AddAuditAccessAceEx(PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD dwAccessMask, PSID pSid, BOOL bAuditSuccess, BOOL bAuditFailure)
static const WCHAR SDDL_AUDIT_SUCCESS[]
BOOL WINAPI SetKernelObjectSecurity(HANDLE Handle, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR SecurityDescriptor)
VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W pTrustee, LPWSTR name)
BOOL WINAPI CreateWellKnownSid(IN WELL_KNOWN_SID_TYPE WellKnownSidType, IN PSID DomainSid OPTIONAL, OUT PSID pSid, IN OUT DWORD *cbSid)
BOOL WINAPI LookupPrivilegeNameA(LPCSTR lpSystemName, PLUID lpLuid, LPSTR lpName, LPDWORD cchName)
static const WCHAR SDDL_NO_READ_UP[]
#define ADS_RIGHT_DS_SELF
static BOOL DumpDacl(PSECURITY_DESCRIPTOR SecurityDescriptor, WCHAR **pwptr, ULONG *plen)
BOOL WINAPI IsValidAcl(PACL pAcl)
static DWORD ParseAceStringRights(LPCWSTR *StringAcl)
static BOOL ParseStringAclToAcl(LPCWSTR StringAcl, LPDWORD lpdwFlags, PACL pAcl, LPDWORD cBytes)
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(LPCWSTR StringSecurityDescriptor, DWORD StringSDRevision, PSECURITY_DESCRIPTOR *SecurityDescriptor, PULONG SecurityDescriptorSize)
TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEEW pTrustee)
static const LPCWSTR AceRightBitNames[32]
const char * wine_dbg_sprintf(const char *format,...)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
@ ThreadImpersonationToken
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
#define ERROR_INVALID_NAME
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
static const WCHAR Cleanup[]
struct _FileName FileName
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define OBJ_CASE_INSENSITIVE
NTSYSAPI NTSTATUS WINAPI RtlQueryInformationAcl(PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS)
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID)
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL, DWORD, DWORD, PSID)
NTSYSAPI NTSTATUS WINAPI RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD, PSID, PSID)
#define EXCEPTION_EXECUTE_HANDLER
enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL
WORD SECURITY_DESCRIPTOR_CONTROL
enum _SID_NAME_USE * PSID_NAME_USE
struct _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE
#define memcpy(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static POBJECTS_AND_NAME_A SE_OBJECT_TYPE LPSTR ObjectTypeName
static POBJECTS_AND_SID pObjSid
static POBJECTS_AND_NAME_A pObjName
static POBJECTS_AND_SID GUID * pObjectGuid
static POBJECTS_AND_SID GUID GUID * pInheritedObjectGuid
static POBJECTS_AND_NAME_A SE_OBJECT_TYPE LPSTR LPSTR InheritedObjectTypeName
static DWORD DWORD void LPSTR DWORD cch
#define InitializeObjectAttributes(p, n, a, r, s)
DWORD SECURITY_INFORMATION
struct _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE
struct _ACCESS_ALLOWED_ACE * PACCESS_ALLOWED_ACE
_In_ ACCESS_MASK AccessMask
_In_ HANDLE ProcessHandle
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
NTSYSAPI NTSTATUS NTAPI RtlAddAce(_Inout_ PACL Acl, _In_ ULONG AceRevision, _In_ ULONG StartingAceIndex, _In_reads_bytes_(AceListLength) PVOID AceList, _In_ ULONG AceListLength)
NTSYSAPI PULONG NTAPI RtlSubAuthoritySid(_In_ PSID Sid, _In_ ULONG SubAuthority)
NTSYSAPI BOOLEAN NTAPI RtlValidAcl(PACL Acl)
NTSYSAPI NTSTATUS NTAPI RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
_In_ PSID_IDENTIFIER_AUTHORITY _In_ UCHAR SubAuthorityCount
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision)
NTSYSAPI NTSTATUS NTAPI RtlAddAuditAccessAce(_Inout_ PACL Acl, _In_ ULONG Revision, _In_ ACCESS_MASK AccessMask, _In_ PSID Sid, _In_ BOOLEAN Success, _In_ BOOLEAN Failure)
NTSYSAPI NTSTATUS NTAPI RtlGetAce(PACL Acl, ULONG AceIndex, PVOID *Ace)
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
NTSYSAPI BOOLEAN NTAPI RtlValidSid(IN PSID Sid)
NTSYSAPI BOOLEAN NTAPI RtlEqualPrefixSid(PSID Sid1, PSID Sid2)
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(_Out_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_ ULONG Revision)
NTSYSAPI NTSTATUS NTAPI RtlAddAuditAccessAceEx(_Inout_ PACL Acl, _In_ ULONG Revision, _In_ ULONG Flags, _In_ ACCESS_MASK AccessMask, _In_ PSID Sid, _In_ BOOLEAN Success, _In_ BOOLEAN Failure)
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
NTSYSAPI PVOID NTAPI RtlFreeSid(_In_ _Post_invalid_ PSID Sid)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
NTSYSAPI PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid(PSID Sid)
NTSYSAPI NTSTATUS NTAPI RtlAddAccessDeniedAce(_Inout_ PACL Acl, _In_ ULONG Revision, _In_ ACCESS_MASK AccessMask, _In_ PSID Sid)
NTSYSAPI NTSTATUS NTAPI RtlAddAccessDeniedAceEx(_Inout_ PACL Acl, _In_ ULONG Revision, _In_ ULONG Flags, _In_ ACCESS_MASK AccessMask, _In_ PSID Sid)
NTSYSAPI NTSTATUS NTAPI RtlDeleteAce(PACL Acl, ULONG AceIndex)
NTSYSAPI BOOLEAN NTAPI RtlEqualSid(_In_ PSID Sid1, _In_ PSID Sid2)
NTSYSAPI BOOLEAN NTAPI RtlFirstFreeAce(PACL Acl, PACE *Ace)
_In_ PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(_In_opt_z_ PCWSTR DosPathName, _Out_ PUNICODE_STRING NtPathName, _Out_opt_ PCWSTR *NtFileNamePart, _Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo)
NTSYSAPI BOOLEAN NTAPI RtlAreAllAccessesGranted(ACCESS_MASK GrantedAccess, ACCESS_MASK DesiredAccess)
NTSYSAPI BOOLEAN NTAPI RtlAreAnyAccessesGranted(ACCESS_MASK GrantedAccess, ACCESS_MASK DesiredAccess)
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ BOOLEAN _In_ TOKEN_TYPE _Out_ PHANDLE NewTokenHandle
_In_ TOKEN_INFORMATION_CLASS _In_ ULONG TokenInformationLength
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ BOOLEAN _In_ TOKEN_TYPE TokenType
#define _In_reads_opt_(s)
#define _Out_writes_bytes_(s)
NTSYSAPI NTSTATUS NTAPI NtOpenFile(OUT PHANDLE phFile, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG ShareMode, IN ULONG OpenMode)
#define FILE_GENERIC_EXECUTE
ACCESS_MASK * PACCESS_MASK
#define FILE_SHARE_DELETE
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSYSAPI NTSTATUS NTAPI NtFsControlFile(IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG DeviceIoControlCode, IN PVOID InBuffer OPTIONAL, IN ULONG InBufferLength, OUT PVOID OutBuffer OPTIONAL, IN ULONG OutBufferLength)
#define FILE_GENERIC_READ
#define FILE_GENERIC_WRITE
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSYSAPI NTSTATUS NTAPI RtlAllocateAndInitializeSid(IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount, IN ULONG SubAuthority0, IN ULONG SubAuthority1, IN ULONG SubAuthority2, IN ULONG SubAuthority3, IN ULONG SubAuthority4, IN ULONG SubAuthority5, IN ULONG SubAuthority6, IN ULONG SubAuthority7, OUT PSID *Sid)
NTSYSAPI NTSTATUS NTAPI RtlConvertSidToUnicodeString(OUT PUNICODE_STRING DestinationString, IN PVOID Sid, IN BOOLEAN AllocateDestinationString)
NTSYSAPI PUCHAR NTAPI RtlSubAuthorityCountSid(IN PSID Sid)
NTSYSAPI NTSTATUS NTAPI RtlInitializeSid(IN OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount)
NTSTATUS NTAPI NtAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId)
NTSTATUS NTAPI NtSetInformationThread(IN HANDLE ThreadHandle, IN THREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength)
NTSTATUS NTAPI NtOpenProcessToken(IN HANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, OUT PHANDLE TokenHandle)
NTSTATUS NTAPI NtPrivilegeCheck(_In_ HANDLE ClientToken, _In_ PPRIVILEGE_SET RequiredPrivileges, _Out_ PBOOLEAN Result)
Checks a client access token if it has the required set of privileges.
NTSTATUS NTAPI NtOpenThreadToken(_In_ HANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ BOOLEAN OpenAsSelf, _Out_ PHANDLE TokenHandle)
Opens a token that is tied to a thread handle.
#define STATUS_NOT_ALL_ASSIGNED
NTSTATUS NTAPI NtQuerySecurityObject(IN HANDLE Handle, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN ULONG Length, OUT PULONG ResultLength)
#define FSCTL_PIPE_IMPERSONATE
#define strtoulW(s1, s2, b)
#define strncmpW(s1, s2, n)
DWORD WINAPI GetVersion()
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
#define SDDL_GENERIC_EXECUTE
#define SDDL_WRITE_PROPERTY
#define SDDL_AUTO_INHERITED
#define SDDL_CREATE_CHILD
#define SDDL_LIST_CHILDREN
#define SDDL_GENERIC_READ
#define SDDL_FILE_EXECUTE
#define SDDL_READ_CONTROL
#define SDDL_STANDARD_DELETE
#define SDDL_AUTO_INHERIT_REQ
#define SDDL_GENERIC_WRITE
#define SDDL_DELETE_CHILD
#define SDDL_READ_PROPERTY
#define SDDL_CONTROL_ACCESS
#define RpcExceptionCode()
NTSTATUS NTAPI RtlSetInformationAcl(IN PACL Acl, IN PVOID Information, IN ULONG InformationLength, IN ACL_INFORMATION_CLASS InformationClass)
VOID WINAPI SetSecurityAccessMask(IN SECURITY_INFORMATION SecurityInformation, OUT LPDWORD DesiredAccess)
VOID WINAPI QuerySecurityAccessMask(IN SECURITY_INFORMATION SecurityInformation, OUT LPDWORD DesiredAccess)
BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSECURITY_DESCRIPTOR_CONTROL pControl, LPDWORD lpdwRevision)
BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID *pGroup, LPBOOL lpbGroupDefaulted)
BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbSaclPresent, PACL *pSacl, LPBOOL lpbSaclDefaulted)
BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbDaclPresent, PACL *pDacl, LPBOOL lpbDaclDefaulted)
BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID *pOwner, LPBOOL lpbOwnerDefaulted)
#define STATUS_BUFFER_TOO_SMALL
NTSTATUS WINAPI NtSetSecurityObject(HANDLE Handle, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR SecurityDescriptor)
PULONG MinorVersion OPTIONAL
DWORD grfAccessPermissions
ACCESS_MODE grfAccessMode
DWORD grfAccessPermissions
ACCESS_MODE grfAccessMode
SID_IDENTIFIER_AUTHORITY IdentifierAuthority
DWORD SubAuthority[SID_MAX_SUB_AUTHORITIES]
LPSTR InheritedObjectTypeName
SE_OBJECT_TYPE ObjectType
GUID InheritedObjectTypeGuid
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
SID_IDENTIFIER_AUTHORITY IdentifierAuthority
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation
struct _TRUSTEE_A * pMultipleTrustee
struct _TRUSTEE_W * pMultipleTrustee
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation
Character const *const prefix
_Must_inspect_result_ __kernel_entry NTSTATUS NTAPI NtAdjustPrivilegesToken(_In_ HANDLE TokenHandle, _In_ BOOLEAN DisableAllPrivileges, _In_opt_ PTOKEN_PRIVILEGES NewState, _In_ ULONG BufferLength, _Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState, _When_(PreviousState!=NULL, _Out_) PULONG ReturnLength)
Removes a certain amount of privileges of a token based upon the request by the caller.
NTSTATUS NTAPI NtAdjustGroupsToken(_In_ HANDLE TokenHandle, _In_ BOOLEAN ResetToDefault, _In_ PTOKEN_GROUPS NewState, _In_ ULONG BufferLength, _Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_GROUPS PreviousState, _When_(PreviousState !=NULL, _Out_) PULONG ReturnLength)
Changes the list of groups by enabling or disabling them in an access token. Unlike NtAdjustPrivilege...
_Must_inspect_result_ __kernel_entry NTSTATUS NTAPI NtQueryInformationToken(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _Out_writes_bytes_to_opt_(TokenInformationLength, *ReturnLength) PVOID TokenInformation, _In_ ULONG TokenInformationLength, _Out_ PULONG ReturnLength)
Queries a specific type of information in regard of an access token based upon the information class....
_Must_inspect_result_ __kernel_entry NTSTATUS NTAPI NtSetInformationToken(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _In_reads_bytes_(TokenInformationLength) PVOID TokenInformation, _In_ ULONG TokenInformationLength)
Sets (modifies) some specific information in regard of an access token. The calling thread must have ...
NTSTATUS NTAPI NtFilterToken(_In_ HANDLE ExistingTokenHandle, _In_ ULONG Flags, _In_opt_ PTOKEN_GROUPS SidsToDisable, _In_opt_ PTOKEN_PRIVILEGES PrivilegesToDelete, _In_opt_ PTOKEN_GROUPS RestrictedSids, _Out_ PHANDLE NewTokenHandle)
Creates an access token in a restricted form from the original existing token, that is,...
_Must_inspect_result_ __kernel_entry NTSTATUS NTAPI NtDuplicateToken(_In_ HANDLE ExistingTokenHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ BOOLEAN EffectiveOnly, _In_ TOKEN_TYPE TokenType, _Out_ PHANDLE NewTokenHandle)
Duplicates a token.
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ WDF_POWER_DEVICE_STATE PreviousState
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_In_ LPCSTR _Out_writes_to_opt_ cchDisplayName LPSTR lpDisplayName
DWORD WINAPI GetLastError(void)
_In_ LPCSTR _Out_writes_to_opt_ cchDisplayName LPSTR _Inout_ LPDWORD _Out_ LPDWORD lpLanguageId
_In_ LPCSTR _Out_writes_bytes_to_opt_ cbSid PSID _Inout_ LPDWORD cbSid
#define CREATE_UNICODE_ENVIRONMENT
DWORD WINAPI GetCurrentProcessId(void)
BOOL WINAPI RevertToSelf(void)
_In_ LPCSTR _Out_writes_to_opt_ cchDisplayName LPSTR _Inout_ LPDWORD cchDisplayName
_In_ LPCSTR _Out_writes_bytes_to_opt_ cbSid PSID _Inout_ LPDWORD _Out_writes_to_opt_ cchReferencedDomainName LPSTR ReferencedDomainName
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
#define MAX_COMPUTERNAME_LENGTH
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
#define ERROR_BAD_PROVIDER
#define ERROR_UNKNOWN_REVISION
#define ERROR_NOT_ALL_ASSIGNED
#define RPC_S_INVALID_STRING_UUID
#define ERROR_INVALID_ACL
#define ERROR_INVALID_SID
enum _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
_Out_ PBOOLEAN _Out_ PBOOLEAN _Out_ PSECURITY_IMPERSONATION_LEVEL ImpersonationLevel
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK _Out_ PNTSTATUS AccessStatus
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
#define SECURITY_ANONYMOUS_LOGON_RID
#define CONTAINER_INHERIT_ACE
#define DOMAIN_ALIAS_RID_USERS
#define DOMAIN_ALIAS_RID_GUESTS
#define DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS
struct _TOKEN_GROUPS * PTOKEN_GROUPS
#define DOMAIN_GROUP_RID_SCHEMA_ADMINS
#define SECURITY_BUILTIN_DOMAIN_RID
#define DOMAIN_USER_RID_ADMIN
#define DACL_SECURITY_INFORMATION
#define SE_SACL_PROTECTED
#define SECURITY_LOCAL_SID_AUTHORITY
#define SECURITY_LOCAL_RID
#define SECURITY_DIALUP_RID
#define SECURITY_SERVICE_RID
#define DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS
#define SECURITY_PROXY_RID
#define ACE_INHERITED_OBJECT_TYPE_PRESENT
#define SECURITY_INTERACTIVE_RID
#define SECURITY_MANDATORY_SYSTEM_RID
#define SE_DACL_PROTECTED
#define SE_DACL_AUTO_INHERITED
#define SECURITY_WORLD_SID_AUTHORITY
#define DOMAIN_GROUP_RID_CONTROLLERS
#define DOMAIN_GROUP_RID_COMPUTERS
#define SECURITY_WORLD_RID
#define SECURITY_CREATOR_GROUP_SERVER_RID
#define DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS
#define DOMAIN_ALIAS_RID_SYSTEM_OPS
#define DOMAIN_ALIAS_RID_MONITORING_USERS
#define DOMAIN_GROUP_RID_POLICY_ADMINS
#define SYSTEM_AUDIT_ACE_TYPE
#define ACCESS_ALLOWED_ACE_TYPE
#define SECURITY_MANDATORY_LABEL_AUTHORITY
#define SECURITY_LOCAL_SYSTEM_RID
#define SECURITY_AUTHENTICATED_USER_RID
#define SE_DACL_AUTO_INHERIT_REQ
#define DOMAIN_GROUP_RID_GUESTS
#define SYSTEM_MANDATORY_LABEL_NO_READ_UP
#define DOMAIN_ALIAS_RID_LOGGING_USERS
#define OWNER_SECURITY_INFORMATION
#define SECURITY_PACKAGE_NTLM_RID
#define SECURITY_NULL_RID
#define SECURITY_PACKAGE_BASE_RID
#define DOMAIN_ALIAS_RID_ACCOUNT_OPS
#define SECURITY_RESTRICTED_CODE_RID
#define DOMAIN_USER_RID_GUEST
struct _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE
#define SE_SACL_AUTO_INHERITED
#define SECURITY_NT_AUTHORITY
#define DOMAIN_ALIAS_RID_RAS_SERVERS
#define SYSTEM_ALARM_ACE_TYPE
#define SECURITY_PACKAGE_DIGEST_RID
#define DOMAIN_GROUP_RID_CERT_ADMINS
#define OBJECT_INHERIT_ACE
#define SECURITY_TERMINAL_SERVER_RID
#define DOMAIN_ALIAS_RID_BACKUP_OPS
#define SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP
#define NO_PROPAGATE_INHERIT_ACE
#define SECURITY_BATCH_RID
#define ACCESS_DENIED_ACE_TYPE
#define SECURITY_MANDATORY_HIGH_RID
#define DOMAIN_ALIAS_RID_PRINT_OPS
#define SECURITY_CREATOR_OWNER_SERVER_RID
#define DOMAIN_ALIAS_RID_REPLICATOR
struct _TOKEN_PRIVILEGES * PTOKEN_PRIVILEGES
#define SECURITY_LOCAL_SERVICE_RID
#define DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS
#define SECURITY_OTHER_ORGANIZATION_RID
#define SECURITY_THIS_ORGANIZATION_RID
#define SYSTEM_MANDATORY_LABEL_ACE_TYPE
#define SECURITY_PRINCIPAL_SELF_RID
enum _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS
* PSID_IDENTIFIER_AUTHORITY
#define SECURITY_CREATOR_OWNER_RID
#define SYSTEM_MANDATORY_LABEL_NO_WRITE_UP
#define DOMAIN_ALIAS_RID_POWER_USERS
#define SE_SACL_AUTO_INHERIT_REQ
#define GROUP_SECURITY_INFORMATION
#define ACE_OBJECT_TYPE_PRESENT
#define DOMAIN_GROUP_RID_ENTERPRISE_ADMINS
#define TOKEN_IMPERSONATE
#define SECURITY_NULL_SID_AUTHORITY
#define DOMAIN_ALIAS_RID_PREW2KCOMPACCESS
#define SECURITY_PACKAGE_SCHANNEL_RID
#define SECURITY_ENTERPRISE_CONTROLLERS_RID
#define SID_MAX_SUB_AUTHORITIES
#define SECURITY_NETWORK_RID
#define SECURITY_NETWORK_SERVICE_RID
#define SACL_SECURITY_INFORMATION
#define DOMAIN_USER_RID_KRBTGT
#define DOMAIN_ALIAS_RID_ADMINS
#define DOMAIN_GROUP_RID_ADMINS
#define SECURITY_CREATOR_SID_AUTHORITY
#define SECURITY_MANDATORY_MEDIUM_RID
#define SECURITY_MANDATORY_LOW_RID
#define SECURITY_REMOTE_LOGON_RID
#define FAILED_ACCESS_ACE_FLAG
#define SECURITY_CREATOR_GROUP_RID
#define SUCCESSFUL_ACCESS_ACE_FLAG
#define SECURITY_NT_NON_UNIQUE
#define DOMAIN_ALIAS_RID_DCOM_USERS
#define DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS
#define DOMAIN_GROUP_RID_USERS
_In_ ACCESS_MASK _In_ BOOLEAN OpenAsSelf
#define NtCurrentThread()