4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * aclapi.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.aclapi; 9b639cf2d6 2015-05-05 kinaba: pragma(lib, "advapi32"); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: import win32.windows, win32.accctrl; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD, 4e2933c620 2015-04-21 kinaba: ACCESS_MODE, DWORD); 4e2933c620 2015-04-21 kinaba: VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD, 4e2933c620 2015-04-21 kinaba: ACCESS_MODE, DWORD); 4e2933c620 2015-04-21 kinaba: DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG, 4e2933c620 2015-04-21 kinaba: PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR, 4e2933c620 2015-04-21 kinaba: PULONG, PSECURITY_DESCRIPTOR*); 4e2933c620 2015-04-21 kinaba: DWORD BuildSecurityDescriptorW(PTRUSTEE_W, PTRUSTEE_W , ULONG, 4e2933c620 2015-04-21 kinaba: PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR, 4e2933c620 2015-04-21 kinaba: PULONG, PSECURITY_DESCRIPTOR*); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithNameA(PTRUSTEE_A, LPSTR); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithNameW(PTRUSTEE_W, LPWSTR); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A, POBJECTS_AND_NAME_A, 4e2933c620 2015-04-21 kinaba: SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W, POBJECTS_AND_NAME_W, 4e2933c620 2015-04-21 kinaba: SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A, POBJECTS_AND_SID, 4e2933c620 2015-04-21 kinaba: GUID*, GUID*, PSID); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W, POBJECTS_AND_SID, 4e2933c620 2015-04-21 kinaba: GUID*, GUID*, PSID); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithSidA(PTRUSTEE_A, PSID); 4e2933c620 2015-04-21 kinaba: VOID BuildTrusteeWithSidW(PTRUSTEE_W, PSID); 4e2933c620 2015-04-21 kinaba: DWORD GetAuditedPermissionsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK, 4e2933c620 2015-04-21 kinaba: PACCESS_MASK); 4e2933c620 2015-04-21 kinaba: DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK, 4e2933c620 2015-04-21 kinaba: PACCESS_MASK); 4e2933c620 2015-04-21 kinaba: DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK); 4e2933c620 2015-04-21 kinaba: DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK); 4e2933c620 2015-04-21 kinaba: DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*); 4e2933c620 2015-04-21 kinaba: DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*); 9b639cf2d6 2015-05-05 kinaba: static if (_WIN32_WINNT >= 0x501) { 4e2933c620 2015-04-21 kinaba: DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE, 4e2933c620 2015-04-21 kinaba: SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, 4e2933c620 2015-04-21 kinaba: PGENERIC_MAPPING, PINHERITED_FROMA); 4e2933c620 2015-04-21 kinaba: DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE, 4e2933c620 2015-04-21 kinaba: SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*, 4e2933c620 2015-04-21 kinaba: PGENERIC_MAPPING, PINHERITED_FROMW); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: DWORD GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, 4e2933c620 2015-04-21 kinaba: PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); 4e2933c620 2015-04-21 kinaba: DWORD GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, 4e2933c620 2015-04-21 kinaba: PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); 4e2933c620 2015-04-21 kinaba: DWORD GetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, 4e2933c620 2015-04-21 kinaba: PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); 4e2933c620 2015-04-21 kinaba: TRUSTEE_FORM GetTrusteeFormA(PTRUSTEE_A); 4e2933c620 2015-04-21 kinaba: TRUSTEE_FORM GetTrusteeFormW(PTRUSTEE_W); 4e2933c620 2015-04-21 kinaba: LPSTR GetTrusteeNameA(PTRUSTEE_A); 4e2933c620 2015-04-21 kinaba: LPWSTR GetTrusteeNameW(PTRUSTEE_W); 4e2933c620 2015-04-21 kinaba: TRUSTEE_TYPE GetTrusteeTypeA(PTRUSTEE_A); 4e2933c620 2015-04-21 kinaba: TRUSTEE_TYPE GetTrusteeTypeW(PTRUSTEE_W); 4e2933c620 2015-04-21 kinaba: DWORD LookupSecurityDescriptorPartsA(PTRUSTEE_A*, PTRUSTEE_A*, PULONG, 4e2933c620 2015-04-21 kinaba: PEXPLICIT_ACCESS_A*, PULONG, PEXPLICIT_ACCESS_A*, 4e2933c620 2015-04-21 kinaba: PSECURITY_DESCRIPTOR); 4e2933c620 2015-04-21 kinaba: DWORD LookupSecurityDescriptorPartsW(PTRUSTEE_W*, PTRUSTEE_W*, PULONG, 4e2933c620 2015-04-21 kinaba: PEXPLICIT_ACCESS_W*, PULONG, PEXPLICIT_ACCESS_W*, 4e2933c620 2015-04-21 kinaba: PSECURITY_DESCRIPTOR); 4e2933c620 2015-04-21 kinaba: DWORD SetEntriesInAclA(ULONG, PEXPLICIT_ACCESS_A, PACL, PACL*); 4e2933c620 2015-04-21 kinaba: DWORD SetEntriesInAclW(ULONG, PEXPLICIT_ACCESS_W, PACL, PACL*); 4e2933c620 2015-04-21 kinaba: DWORD SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, 4e2933c620 2015-04-21 kinaba: PSID, PSID, PACL, PACL); 4e2933c620 2015-04-21 kinaba: DWORD SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, 4e2933c620 2015-04-21 kinaba: PSID, PSID, PACL, PACL); 4e2933c620 2015-04-21 kinaba: DWORD SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, 4e2933c620 2015-04-21 kinaba: PSID, PACL, PACL); 4e2933c620 2015-04-21 kinaba: VOID BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, 4e2933c620 2015-04-21 kinaba: PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD); 4e2933c620 2015-04-21 kinaba: VOID BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, 4e2933c620 2015-04-21 kinaba: PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD); 4e2933c620 2015-04-21 kinaba: VOID BuildImpersonateTrusteeA(PTRUSTEE_A, PTRUSTEE_A); 4e2933c620 2015-04-21 kinaba: VOID BuildImpersonateTrusteeW(PTRUSTEE_W, PTRUSTEE_W); 4e2933c620 2015-04-21 kinaba: PTRUSTEE_A GetMultipleTrusteeA(PTRUSTEE_A); 4e2933c620 2015-04-21 kinaba: PTRUSTEE_W GetMultipleTrusteeW(PTRUSTEE_W); 4e2933c620 2015-04-21 kinaba: MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationA(PTRUSTEE_A); 4e2933c620 2015-04-21 kinaba: MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationW(PTRUSTEE_W); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version (Unicode) { 4e2933c620 2015-04-21 kinaba: alias BuildExplicitAccessWithNameW BuildExplicitAccessWithName; 4e2933c620 2015-04-21 kinaba: alias BuildSecurityDescriptorW BuildSecurityDescriptor; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithNameW BuildTrusteeWithName; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithObjectsAndNameW BuildTrusteeWithObjectsAndName; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithObjectsAndSidW BuildTrusteeWithObjectsAndSid; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithSidW BuildTrusteeWithSid; 4e2933c620 2015-04-21 kinaba: alias GetAuditedPermissionsFromAclW GetAuditedPermissionsFromAcl; 4e2933c620 2015-04-21 kinaba: alias GetEffectiveRightsFromAclW GetEffectiveRightsFromAcl; 4e2933c620 2015-04-21 kinaba: alias GetExplicitEntriesFromAclW GetExplicitEntriesFromAcl; 4e2933c620 2015-04-21 kinaba: alias GetNamedSecurityInfoW GetNamedSecurityInfo; 4e2933c620 2015-04-21 kinaba: alias GetTrusteeFormW GetTrusteeForm; 4e2933c620 2015-04-21 kinaba: alias GetTrusteeNameW GetTrusteeName; 4e2933c620 2015-04-21 kinaba: alias GetTrusteeTypeW GetTrusteeType; 4e2933c620 2015-04-21 kinaba: alias LookupSecurityDescriptorPartsW LookupSecurityDescriptorParts; 4e2933c620 2015-04-21 kinaba: alias SetEntriesInAclW SetEntriesInAcl; 4e2933c620 2015-04-21 kinaba: alias SetNamedSecurityInfoW SetNamedSecurityInfo; 4e2933c620 2015-04-21 kinaba: alias BuildImpersonateExplicitAccessWithNameW 4e2933c620 2015-04-21 kinaba: BuildImpersonateExplicitAccessWithName; 4e2933c620 2015-04-21 kinaba: alias BuildImpersonateTrusteeW BuildImpersonateTrustee; 4e2933c620 2015-04-21 kinaba: alias GetMultipleTrusteeW GetMultipleTrustee; 4e2933c620 2015-04-21 kinaba: alias GetMultipleTrusteeOperationW GetMultipleTrusteeOperation; 4e2933c620 2015-04-21 kinaba: } else { 4e2933c620 2015-04-21 kinaba: alias BuildExplicitAccessWithNameA BuildExplicitAccessWithName; 4e2933c620 2015-04-21 kinaba: alias BuildSecurityDescriptorA BuildSecurityDescriptor; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithNameA BuildTrusteeWithName; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithObjectsAndNameA BuildTrusteeWithObjectsAndName; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithObjectsAndSidA BuildTrusteeWithObjectsAndSid; 4e2933c620 2015-04-21 kinaba: alias BuildTrusteeWithSidA BuildTrusteeWithSid; 4e2933c620 2015-04-21 kinaba: alias GetAuditedPermissionsFromAclA GetAuditedPermissionsFromAcl; 4e2933c620 2015-04-21 kinaba: alias GetEffectiveRightsFromAclA GetEffectiveRightsFromAcl; 4e2933c620 2015-04-21 kinaba: alias GetExplicitEntriesFromAclA GetExplicitEntriesFromAcl; 4e2933c620 2015-04-21 kinaba: alias GetNamedSecurityInfoA GetNamedSecurityInfo; 4e2933c620 2015-04-21 kinaba: alias GetTrusteeFormA GetTrusteeForm; 4e2933c620 2015-04-21 kinaba: alias GetTrusteeNameA GetTrusteeName; 4e2933c620 2015-04-21 kinaba: alias GetTrusteeTypeA GetTrusteeType; 4e2933c620 2015-04-21 kinaba: alias LookupSecurityDescriptorPartsA LookupSecurityDescriptorParts; 4e2933c620 2015-04-21 kinaba: alias SetEntriesInAclA SetEntriesInAcl; 4e2933c620 2015-04-21 kinaba: alias SetNamedSecurityInfoA SetNamedSecurityInfo; 4e2933c620 2015-04-21 kinaba: alias BuildImpersonateExplicitAccessWithNameA 4e2933c620 2015-04-21 kinaba: BuildImpersonateExplicitAccessWithName; 4e2933c620 2015-04-21 kinaba: alias BuildImpersonateTrusteeA BuildImpersonateTrustee; 4e2933c620 2015-04-21 kinaba: alias GetMultipleTrusteeA GetMultipleTrustee; 4e2933c620 2015-04-21 kinaba: alias GetMultipleTrusteeOperationA GetMultipleTrusteeOperation; 4e2933c620 2015-04-21 kinaba: }