implemented GetInheritanceSource and FreeInheritedFromArray and forward them to the MARTA provider Modified: trunk/reactos/lib/advapi32/advapi32.h Modified: trunk/reactos/lib/advapi32/sec/ac.c Modified: trunk/reactos/lib/advapi32/sec/misc.c Modified: trunk/reactos/lib/ntmarta/ntmarta.c Modified: trunk/reactos/lib/ntmarta/ntmarta.def _____
Modified: trunk/reactos/lib/advapi32/advapi32.h --- trunk/reactos/lib/advapi32/advapi32.h 2005-07-27 17:20:57 UTC (rev 16806) +++ trunk/reactos/lib/advapi32/advapi32.h 2005-07-27 18:24:18 UTC (rev 16807) @@ -69,8 +69,21 @@
PVOID RewriteGetExplicitEntriesFromAcl; PVOID TreeResetNamedSecurityInfo; - PVOID GetInheritanceSource; - PVOID FreeIndexArray; + + DWORD (STDCALL *GetInheritanceSource)(LPWSTR pObjectName, + SE_OBJECT_TYPE ObjectType, + SECURITY_INFORMATION SecurityInfo, + BOOL Container, + GUID** pObjectClassGuids, + DWORD GuidCount, + PACL pAcl, + PFN_OBJECT_MGR_FUNCTS pfnArray, + PGENERIC_MAPPING pGenericMapping, + PINHERITED_FROMW pInheritArray); + + DWORD (STDCALL *FreeIndexArray)(PINHERITED_FROMW pInheritArray, + USHORT AceCnt, + PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL); } NTMARTA, *PNTMARTA;
#define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee _____
Modified: trunk/reactos/lib/advapi32/sec/ac.c --- trunk/reactos/lib/advapi32/sec/ac.c 2005-07-27 17:20:57 UTC (rev 16806) +++ trunk/reactos/lib/advapi32/sec/ac.c 2005-07-27 18:24:18 UTC (rev 16807) @@ -435,7 +435,7 @@
/* - * @unimplemented + * @implemented */ DWORD STDCALL @@ -452,8 +452,25 @@ PINHERITED_FROMW pInheritArray ) { - DPRINT1("%s() not implemented!\n", __FUNCTION__); - return ERROR_CALL_NOT_IMPLEMENTED; + DWORD ErrorCode; + + ErrorCode = CheckNtMartaPresent(); + if (ErrorCode == ERROR_SUCCESS) + { + /* call the MARTA provider */ + ErrorCode = AccGetInheritanceSource(pObjectName, + ObjectType, + SecurityInfo, + Container, + pObjectClassGuids, + GuidCount, + pAcl, + pfnArray, + pGenericMapping, + pInheritArray); + } + + return ErrorCode; }
@@ -475,24 +492,38 @@ PINHERITED_FROM pInheritArray ) { - DPRINT1("%s() not implemented!\n", __FUNCTION__); - return ERROR_CALL_NOT_IMPLEMENTED; + /* That's all this function does, at least up to w2k3... Even MS was too + lazy to implement it... */ + return ERROR_CALL_NOT_IMPLEMENTED; }
/* - * @unimplemented + * @implemented */ DWORD STDCALL FreeInheritedFromArray ( - PINHERITED_FROM pInheritArray, + PINHERITED_FROMW pInheritArray, USHORT AceCnt, PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL ) { - DPRINT1("%s() not implemented!\n", __FUNCTION__); - return ERROR_CALL_NOT_IMPLEMENTED; + DWORD ErrorCode; + + /* pfnArray is not yet used */ + UNREFERENCED_PARAMETER(pfnArray); + + ErrorCode = CheckNtMartaPresent(); + if (ErrorCode == ERROR_SUCCESS) + { + /* call the MARTA provider */ + ErrorCode = AccFreeIndexArray(pInheritArray, + AceCnt, + NULL); + } + + return ErrorCode; }
_____
Modified: trunk/reactos/lib/advapi32/sec/misc.c --- trunk/reactos/lib/advapi32/sec/misc.c 2005-07-27 17:20:57 UTC (rev 16806) +++ trunk/reactos/lib/advapi32/sec/misc.c 2005-07-27 18:24:18 UTC (rev 16807) @@ -62,9 +62,9 @@
#if 0 FindNtMartaProc(RewriteGetExplicitEntriesFromAcl); FindNtMartaProc(TreeResetNamedSecurityInfo); +#endif FindNtMartaProc(GetInheritanceSource); FindNtMartaProc(FreeIndexArray); -#endif
return ERROR_SUCCESS; } _____
Modified: trunk/reactos/lib/ntmarta/ntmarta.c --- trunk/reactos/lib/ntmarta/ntmarta.c 2005-07-27 17:20:57 UTC (rev 16806) +++ trunk/reactos/lib/ntmarta/ntmarta.c 2005-07-27 18:24:18 UTC (rev 16807) @@ -121,6 +121,43 @@
}
+/********************************************************************** + * AccRewriteSetEntriesInAcl EXPORTED + * + * @unimplemented + */ +DWORD STDCALL +AccGetInheritanceSource(LPWSTR pObjectName, + SE_OBJECT_TYPE ObjectType, + SECURITY_INFORMATION SecurityInfo, + BOOL Container, + GUID** pObjectClassGuids, + DWORD GuidCount, + PACL pAcl, + PFN_OBJECT_MGR_FUNCTS pfnArray, + PGENERIC_MAPPING pGenericMapping, + PINHERITED_FROMW pInheritArray) +{ + UNIMPLEMENTED; + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +/********************************************************************** + * AccFreeIndexArray EXPORTED + * + * @unimplemented + */ +DWORD STDCALL +AccFreeIndexArray(PINHERITED_FROMW pInheritArray, + USHORT AceCnt, + PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL) +{ + UNIMPLEMENTED; + return ERROR_CALL_NOT_IMPLEMENTED; +} + + BOOL STDCALL DllMain(IN HINSTANCE hinstDLL, IN DWORD dwReason, _____
Modified: trunk/reactos/lib/ntmarta/ntmarta.def --- trunk/reactos/lib/ntmarta/ntmarta.def 2005-07-27 17:20:57 UTC (rev 16806) +++ trunk/reactos/lib/ntmarta/ntmarta.def 2005-07-27 18:24:18 UTC (rev 16807) @@ -1,8 +1,8 @@
LIBRARY ntmarta.dll
EXPORTS -;AccFreeIndexArray -;AccGetInheritanceSource +AccFreeIndexArray@12 +AccGetInheritanceSource@40 ;AccProvHandleGrantAccessRights; ;AccRewriteGetExplicitEntriesFromAcl AccRewriteGetHandleRights@32