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