77 switch (AceHeader->AceType)
112 switch (AceHeader->AceType)
131 Size +=
sizeof(
Ace->ObjectType);
133 Size +=
sizeof(
Ace->InheritedObjectType);
143 Size +=
sizeof(
Ace->ObjectType);
145 Size +=
sizeof(
Ace->InheritedObjectType);
163 Size +=
sizeof(
Ace->ObjectType);
165 Size +=
sizeof(
Ace->InheritedObjectType);
174 Size +=
sizeof(
Ace->ObjectType);
176 Size +=
sizeof(
Ace->InheritedObjectType);
206 switch (AceHeader->AceType)
232 switch (Trustee->TrusteeForm)
287 if (ObjectsPresent != 0)
288 Ret +=
sizeof(
DWORD);
298 switch (AceHeader->AceType)
341 switch (AceHeader->AceType)
409 if (SystemName !=
NULL && SystemName[0] !=
L'\0')
411 SystemNameLength =
wcslen(SystemName);
417 LsaSystemName.
Buffer = SystemName;
420 psn = &LsaSystemName;
428 &LsaObjectAttributes,
440 switch (Trustee->TrusteeForm)
443 return Trustee->ptstrName;
523 sizeof(LsaNames) /
sizeof(LsaNames[0]),
585 switch (Trustee->TrusteeForm)
599 if (!
wcscmp(TrusteeName,
L"CURRENT_USER"))
610 if (*pPolicyHandle ==
NULL)
636 *ppSid = (
PSID)Trustee->ptstrName;
767 BOOL Present, Defaulted;
819 *ppSecurityDescriptor = pSD;
862 pSecurityDescriptor);
872 pSecurityDescriptor);
884 pSecurityDescriptor))
895 pSecurityDescriptor))
973 lpPath = pObjectName;
1025 } AccRegRootKeys[] =
1033 LPWSTR lpMachineName, lpRootKeyName, lpKeyName;
1038 if (lpPath[0] ==
L'\\' && lpPath[1] ==
L'\\')
1040 lpMachineName = lpPath;
1042 lpRootKeyName =
wcschr(lpPath + 2,
1044 if (lpRootKeyName ==
NULL)
1047 *(lpRootKeyName++) =
L'\0';
1051 lpMachineName =
NULL;
1052 lpRootKeyName = lpPath;
1055 lpKeyName =
wcschr(lpRootKeyName,
1057 if (lpKeyName !=
NULL)
1059 *(lpKeyName++) =
L'\0';
1063 i !=
sizeof(AccRegRootKeys) /
sizeof(AccRegRootKeys[0]);
1067 AccRegRootKeys[
i].szRootKey))
1069 hRootKey = AccRegRootKeys[
i].hRootKey;
1074 if (hRootKey ==
NULL)
1083 if (lpMachineName !=
NULL)
1092 hRootKey = (
HKEY)(*Handle2);
1102 if (*Handle2 !=
NULL)
1114 LPWSTR lpServiceName, lpMachineName;
1117 if (lpPath[0] ==
L'\\' && lpPath[1] ==
L'\\')
1121 lpMachineName = lpPath;
1123 lpServiceName =
wcschr(lpPath + 2,
1125 if (lpServiceName ==
NULL)
1132 *(lpServiceName++) =
L'\0';
1136 lpMachineName =
NULL;
1137 lpServiceName = lpPath;
1144 if (*Handle2 ==
NULL)
1176 if (lpPath !=
NULL && lpPath != pObjectName)
1197 if (Handle2 !=
NULL)
1265 ppSecurityDescriptor);
1315 pSecurityDescriptor);
1346 GUID ObjectTypeGuid, InheritedObjectTypeGuid;
1347 DWORD ObjectsPresent;
1370 if (SizeInformation.
AceCount >
sizeof(KeepAceBuf) /
sizeof(KeepAceBuf[0]))
1380 pKeepAce = KeepAceBuf;
1391 for (
i = 0;
i < cCountOfExplicitEntries;
i++)
1404 switch (pListOfExplicitEntries[
i].grfAccessMode)
1437 DPRINT1(
"Case not implemented!\n");
1440 DPRINT1(
"Unknown access mode 0x%x. Ignoring it\n", pListOfExplicitEntries[
i].grfAccessMode);
1474 for (
i = 0;
i < cCountOfExplicitEntries;
i++)
1476 if (pListOfExplicitEntries[
i].grfAccessMode ==
DENY_ACCESS)
1488 &InheritedObjectTypeGuid);
1490 if (ObjectsPresent == 0)
1498 DPRINT1(
"Object ACEs not yet supported!\n");
1516 for (
i = 0;
i < cCountOfExplicitEntries;
i++)
1518 if (pListOfExplicitEntries[
i].grfAccessMode ==
SET_ACCESS ||
1531 &InheritedObjectTypeGuid);
1533 if (ObjectsPresent == 0)
1541 DPRINT1(
"Object ACEs not yet supported!\n");
1561 if (pKeepAce && pKeepAce != KeepAceBuf)
1587 GUID** pObjectClassGuids,
1592 PINHERITED_FROMW pInheritArray)
1609 PINHERITED_FROMW pLast;
1613 pLast = pInheritArray + AceCnt;
1614 while (pInheritArray != pLast)
1616 if (pInheritArray->AncestorName !=
NULL)
1619 pInheritArray->AncestorName =
NULL;
1636 PULONG pcCountOfExplicitEntries,
1641 ULONG ObjectAceCount = 0;
1645 DWORD LastErr, SidLen;
1683 SidTarget = (
PSID)(ObjSid + ObjectAceCount);
1732 *pcCountOfExplicitEntries =
AceIndex;
1733 *pListOfExplicitEntries = peaw;
1746 *pcCountOfExplicitEntries = 0;
1747 *pListOfExplicitEntries =
NULL;
struct _OBJECTS_AND_SID * POBJECTS_AND_SID
enum _ACCESS_MODE ACCESS_MODE
struct _EXPLICIT_ACCESS_W * PEXPLICIT_ACCESS_W
struct _OBJECTS_AND_NAME_W * POBJECTS_AND_NAME_W
enum _PROG_INVOKE_SETTING PROG_INVOKE_SETTING
@ TRUSTEE_IS_OBJECTS_AND_SID
@ TRUSTEE_IS_OBJECTS_AND_NAME
enum _SE_OBJECT_TYPE SE_OBJECT_TYPE
struct _OBJECTS_AND_SID OBJECTS_AND_SID
#define BuildTrusteeWithSid
#define BuildTrusteeWithObjectsAndSid
#define AccGetInheritanceSource
#define AccTreeResetNamedSecurityInfo
#define AccRewriteGetExplicitEntriesFromAcl
#define AccRewriteGetHandleRights
#define AccRewriteSetEntriesInAcl
#define AccRewriteSetHandleRights
#define AccFreeIndexArray
#define AccRewriteSetNamedRights
#define AccRewriteGetNamedRights
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define RegCloseKey(hKey)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
#define NT_SUCCESS(StatCode)
LONG WINAPI RegGetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, LPDWORD lpcbSecurityDescriptor)
LONG WINAPI RegSetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
NTSTATUS WINAPI LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName OPTIONAL, IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE PolicyHandle)
ULONG WINAPI LsaNtStatusToWinError(IN NTSTATUS Status)
NTSTATUS WINAPI LsaLookupNames2(IN LSA_HANDLE PolicyHandle, IN ULONG Flags, IN ULONG Count, IN PLSA_UNICODE_STRING Names, OUT PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, OUT PLSA_TRANSLATED_SID2 *Sids)
NTSTATUS WINAPI LsaFreeMemory(IN PVOID Buffer)
NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle)
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)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI CopySid(DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid)
BOOL WINAPI InitializeAcl(PACL pAcl, DWORD nAclLength, DWORD dwAclRevision)
BOOL WINAPI AddAccessAllowedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid)
DWORD WINAPI GetLengthSid(PSID pSid)
BOOL WINAPI OpenThreadToken(HANDLE ThreadHandle, DWORD DesiredAccess, BOOL OpenAsSelf, HANDLE *TokenHandle)
BOOL WINAPI GetAce(PACL pAcl, DWORD dwAceIndex, LPVOID *pAce)
BOOL WINAPI AddAccessDeniedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define GetCurrentProcess()
#define ERROR_INVALID_NAME
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
static const WCHAR Cleanup[]
IN PFCB IN VBO OUT PLBO OUT PULONG OUT PBOOLEAN Allocated
struct _FileName FileName
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
#define FILE_SYNCHRONOUS_IO_NONALERT
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 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 LocalReAlloc(HLOCAL hMem, SIZE_T dwBytes, UINT uFlags)
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 ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
static IN DWORD IN LPVOID lpvReserved
static OUT PIO_STATUS_BLOCK IoStatusBlock
#define InitializeObjectAttributes(p, n, a, r, s)
DWORD SECURITY_INFORMATION
struct _ACCESS_ALLOWED_OBJECT_ACE * PACCESS_ALLOWED_OBJECT_ACE
struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE * PACCESS_ALLOWED_CALLBACK_OBJECT_ACE
struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE * PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE
_In_ NDIS_ERROR_CODE ErrorCode
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
NTSYSAPI BOOLEAN NTAPI RtlEqualSid(_In_ PSID Sid1, _In_ PSID Sid2)
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 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 ACCESS_SYSTEM_SECURITY
ACCESS_MASK * PACCESS_MASK
#define FILE_SHARE_DELETE
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define UNICODE_STRING_MAX_CHARS
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
static DWORD AccpOpenLSAPolicyHandle(IN LPWSTR SystemName, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE pPolicyHandle)
static ACCESS_MODE AccpGetAceAccessMode(IN PACE_HEADER AceHeader)
VOID WINAPI SetSecurityAccessMask(IN SECURITY_INFORMATION SecurityInformation, OUT LPDWORD DesiredAccess)
VOID WINAPI QuerySecurityAccessMask(IN SECURITY_INFORMATION SecurityInformation, OUT LPDWORD DesiredAccess)
static BOOL AccpIsObjectAce(IN PACE_HEADER AceHeader)
static GUID * AccpGetObjectAceInheritedObjectType(IN PACE_HEADER AceHeader)
static ACCESS_MASK AccpGetAceAccessMask(IN PACE_HEADER AceHeader)
static PSID AccpGetAceSid(IN PACE_HEADER AceHeader)
static DWORD AccpGetTrusteeObjects(IN PTRUSTEE_W Trustee, OUT GUID *pObjectTypeGuid OPTIONAL, OUT GUID *pInheritedObjectTypeGuid OPTIONAL)
BOOL WINAPI DllMain(IN HINSTANCE hinstDLL, IN DWORD dwReason, IN LPVOID lpvReserved)
static DWORD AccpLookupCurrentUser(OUT PSID *ppSid)
static DWORD AccpCalcNeededAceSize(IN PSID Sid, IN DWORD ObjectsPresent)
static GUID * AccpGetObjectAceObjectType(IN PACE_HEADER AceHeader)
static LPWSTR AccpGetTrusteeName(IN PTRUSTEE_W Trustee)
static DWORD AccpOpenNamedObject(LPWSTR pObjectName, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PHANDLE Handle, PHANDLE Handle2, BOOL Write)
static DWORD AccpLookupSidByName(IN LSA_HANDLE PolicyHandle, IN LPWSTR Name, OUT PSID *pSid)
static DWORD AccpGetTrusteeSid(IN PTRUSTEE_W Trustee, IN OUT PLSA_HANDLE pPolicyHandle, OUT PSID *ppSid, OUT BOOL *Allocated)
static VOID AccpCloseObjectHandle(SE_OBJECT_TYPE ObjectType, HANDLE Handle, HANDLE Handle2)
static UINT AccpGetAceStructureSize(IN PACE_HEADER AceHeader)
#define POLICY_LOOKUP_NAMES
#define STATUS_NONE_MAPPED
NTSTATUS NTAPI NtQuerySecurityObject(IN HANDLE Handle, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN ULONG Length, OUT PULONG ResultLength)
BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE hService, SECURITY_INFORMATION dwSecurityInformation, PSECURITY_DESCRIPTOR lpSecurityDescriptor, DWORD cbBufSize, LPDWORD pcbBytesNeeded)
BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE hService, SECURITY_INFORMATION dwSecurityInformation, PSECURITY_DESCRIPTOR lpSecurityDescriptor)
BOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
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)
NTSTATUS WINAPI NtSetSecurityObject(HANDLE Handle, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR SecurityDescriptor)
PULONG MinorVersion OPTIONAL
DWORD grfAccessPermissions
ACCESS_MODE grfAccessMode
GUID InheritedObjectTypeGuid
#define FIELD_OFFSET(t, f)
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
DWORD WINAPI GetLastError(void)
HANDLE WINAPI GetCurrentThread(void)
* PSYSTEM_AUDIT_OBJECT_ACE
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_CONFIG
#define HKEY_CURRENT_USER
#define RegConnectRegistry
#define HKEY_CLASSES_ROOT
#define SC_MANAGER_CONNECT
BOOL WINAPI SetUserObjectSecurity(_In_ HANDLE, _In_ PSECURITY_INFORMATION, _In_ PSECURITY_DESCRIPTOR)
BOOL WINAPI GetUserObjectSecurity(_In_ HANDLE hObj, _In_ PSECURITY_INFORMATION pSIRequested, _Out_writes_bytes_opt_(nLength) PSECURITY_DESCRIPTOR pSID, _In_ DWORD nLength, _Out_ LPDWORD lpnLengthNeeded)
#define VALID_INHERIT_FLAGS
#define ACCESS_DENIED_CALLBACK_ACE_TYPE
#define DACL_SECURITY_INFORMATION
struct _TOKEN_USER TOKEN_USER
#define ACE_INHERITED_OBJECT_TYPE_PRESENT
struct _TOKEN_USER * PTOKEN_USER
#define ACCESS_DENIED_OBJECT_ACE_TYPE
#define SYSTEM_AUDIT_ACE_TYPE
#define ACCESS_ALLOWED_ACE_TYPE
#define ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE
#define OWNER_SECURITY_INFORMATION
#define SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE
#define ACCESS_DENIED_ACE_TYPE
#define SYSTEM_AUDIT_CALLBACK_ACE_TYPE
#define SYSTEM_MANDATORY_LABEL_ACE_TYPE
#define GROUP_SECURITY_INFORMATION
#define ACE_OBJECT_TYPE_PRESENT
#define ACCESS_ALLOWED_OBJECT_ACE_TYPE
#define ACCESS_ALLOWED_CALLBACK_ACE_TYPE
#define SID_MAX_SUB_AUTHORITIES
#define SACL_SECURITY_INFORMATION
#define SYSTEM_AUDIT_OBJECT_ACE_TYPE
#define ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE
#define FAILED_ACCESS_ACE_FLAG
#define SUCCESSFUL_ACCESS_ACE_FLAG