From 72b0db800a820603e21828ed118474bdf26b4506 Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos Date: Fri, 26 Sep 2003 08:07:39 +0000 Subject: [PATCH] * include/aclapi.h [_WIN32_WINNT >= 0x0501] (GetInheritanceSource[AW]): Add functions. Don't know what PFN_OBJECT_MGR_FUNCTS is so use void* instead. * include/accctrl.h [_WIN32_WINNT >= 0x0501] (INHERITED_FROM[AW], PINHERITED_FROM[AW]): Add structures. * lib/user32.def (GetInheritanceSource[AW]): Add functions. --- winsup/w32api/ChangeLog | 11 +++++++++++ winsup/w32api/include/accctrl.h | 26 ++++++++++++++++++++------ winsup/w32api/include/aclapi.h | 8 ++++++-- winsup/w32api/include/winuser.h | 2 +- winsup/w32api/lib/advapi32.def | 2 ++ 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index b8cdb6ee4..431bbcb08 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,14 @@ +2003-09-26 Dimitri Papadopoulos + + * include/aclapi.h [_WIN32_WINNT >= 0x0501] (GetInheritanceSource[AW]): + Add functions. Don't know what PFN_OBJECT_MGR_FUNCTS is so use + void* instead. + + * include/accctrl.h [_WIN32_WINNT >= 0x0501] (INHERITED_FROM[AW], + PINHERITED_FROM[AW]): Add structures. + + * lib/user32.def (GetInheritanceSource[AW]): Add functions. + 2003-09-26 Corinna Vinschen * include/winuser.h (FLASHWINFO, PFLASHWINFO): Define for 98/Me, too. diff --git a/winsup/w32api/include/accctrl.h b/winsup/w32api/include/accctrl.h index c04b944a1..6f969042f 100644 --- a/winsup/w32api/include/accctrl.h +++ b/winsup/w32api/include/accctrl.h @@ -256,27 +256,36 @@ typedef struct _EXPLICIT_ACCESS_W { DWORD grfInheritance; TRUSTEE_W Trustee; } EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW; -typedef struct _OBJECTS_AND_SID { +typedef struct _OBJECTS_AND_SID { DWORD ObjectsPresent; GUID ObjectTypeGuid; GUID InheritedObjectTypeGuid; SID * pSid; } OBJECTS_AND_SID, *POBJECTS_AND_SID; -typedef struct _OBJECTS_AND_NAME_A { +typedef struct _OBJECTS_AND_NAME_A { DWORD ObjectsPresent; SE_OBJECT_TYPE ObjectType; LPSTR ObjectTypeName; LPSTR InheritedObjectTypeName; LPSTR ptstrName; } OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A; -typedef struct _OBJECTS_AND_NAME_W { +typedef struct _OBJECTS_AND_NAME_W { DWORD ObjectsPresent; SE_OBJECT_TYPE ObjectType; LPWSTR ObjectTypeName; LPWSTR InheritedObjectTypeName; LPWSTR ptstrName; } OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W; - +#if (_WIN32_WINNT >= 0x0501) +typedef struct { + LONG GenerationGap; + LPSTR AncestorName; +} INHERITED_FROMA, *PINHERITED_FROMA; +typedef struct { + LONG GenerationGap; + LPWSTR AncestorName; +} INHERITED_FROMW, *PINHERITED_FROMW; +#endif /* (_WIN32_WINNT >= 0x0501) */ #ifdef UNICODE #define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW @@ -292,6 +301,9 @@ typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_; typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS; typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS; typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_; +#if (_WIN32_WINNT >= 0x0501) +typedef INHERITED_FROMW INHERITED_FROM, *PINHERITED_FROM; +#endif #else #define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_; @@ -306,10 +318,12 @@ typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_; typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS; typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS; typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_; +#if (_WIN32_WINNT >= 0x0501) +typedef INHERITED_FROMA INHERITED_FROM, *PINHERITED_FROM; #endif +#endif /* UNICODE */ #ifdef __cplusplus } #endif - -#endif /* _ACCCTRL_H */ +#endif diff --git a/winsup/w32api/include/aclapi.h b/winsup/w32api/include/aclapi.h index 1d0224086..d4ef6a794 100644 --- a/winsup/w32api/include/aclapi.h +++ b/winsup/w32api/include/aclapi.h @@ -10,6 +10,7 @@ #ifdef __cplusplus extern "C" { #endif + VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD); VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD); DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A, @@ -32,6 +33,10 @@ DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK); DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK); DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*); DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*); +#if (_WIN32_WINNT >= 0x0501) +DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA); +DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW); +#endif DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, @@ -104,10 +109,9 @@ MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W); #define BuildImpersonateTrustee BuildImpersonateTrusteeA #define GetMultipleTrustee GetMultipleTrusteeA #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA -#endif /* UNICODE */ +#endif /* UNICODE */ #ifdef __cplusplus } #endif #endif - diff --git a/winsup/w32api/include/winuser.h b/winsup/w32api/include/winuser.h index 57596358b..0cbe7fbc6 100644 --- a/winsup/w32api/include/winuser.h +++ b/winsup/w32api/include/winuser.h @@ -2834,7 +2834,7 @@ typedef struct { UINT uCount; DWORD dwTimeout; } FLASHWINFO, *PFLASHWINFO; -#endif /* (WINVER >= 0x0500) */ +#endif /* (WINVER >= 0x0500 || _WIN32_WINDOWS >= 0x0410) */ #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0490) typedef struct tagMOUSEMOVEPOINT { int x; diff --git a/winsup/w32api/lib/advapi32.def b/winsup/w32api/lib/advapi32.def index bf2f2edd0..99fc62bad 100644 --- a/winsup/w32api/lib/advapi32.def +++ b/winsup/w32api/lib/advapi32.def @@ -193,6 +193,8 @@ GetExplicitEntriesFromAclA@12 GetExplicitEntriesFromAclW@12 GetFileSecurityA@20 GetFileSecurityW@20 +GetInheritanceSourceA@40 +GetInheritanceSourceW@40 GetKernelObjectSecurity@20 GetLengthSid@4 GetLocalManagedApplications@12