File Annotation

Not logged in
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: }