mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
implemented GetInheritanceSource and FreeInheritedFromArray and forward them to the MARTA provider
svn path=/trunk/; revision=16807
This commit is contained in:
parent
a3b5b6b8a8
commit
d04a2e183c
5 changed files with 95 additions and 14 deletions
|
@ -69,8 +69,21 @@ typedef struct _NTMARTA
|
||||||
|
|
||||||
PVOID RewriteGetExplicitEntriesFromAcl;
|
PVOID RewriteGetExplicitEntriesFromAcl;
|
||||||
PVOID TreeResetNamedSecurityInfo;
|
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;
|
} NTMARTA, *PNTMARTA;
|
||||||
|
|
||||||
#define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
|
#define AccLookupAccountTrustee NtMartaStatic.LookupAccountTrustee
|
||||||
|
|
|
@ -435,7 +435,7 @@ GetAce (
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -452,8 +452,25 @@ GetInheritanceSourceW (
|
||||||
PINHERITED_FROMW pInheritArray
|
PINHERITED_FROMW pInheritArray
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DPRINT1("%s() not implemented!\n", __FUNCTION__);
|
DWORD ErrorCode;
|
||||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
|
||||||
|
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 @@ GetInheritanceSourceA (
|
||||||
PINHERITED_FROM pInheritArray
|
PINHERITED_FROM pInheritArray
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DPRINT1("%s() not implemented!\n", __FUNCTION__);
|
/* That's all this function does, at least up to w2k3... Even MS was too
|
||||||
|
lazy to implement it... */
|
||||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
FreeInheritedFromArray (
|
FreeInheritedFromArray (
|
||||||
PINHERITED_FROM pInheritArray,
|
PINHERITED_FROMW pInheritArray,
|
||||||
USHORT AceCnt,
|
USHORT AceCnt,
|
||||||
PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL
|
PFN_OBJECT_MGR_FUNCTS pfnArray OPTIONAL
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DPRINT1("%s() not implemented!\n", __FUNCTION__);
|
DWORD ErrorCode;
|
||||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
|
||||||
|
/* 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -62,9 +62,9 @@ LoadAndInitializeNtMarta(VOID)
|
||||||
#if 0
|
#if 0
|
||||||
FindNtMartaProc(RewriteGetExplicitEntriesFromAcl);
|
FindNtMartaProc(RewriteGetExplicitEntriesFromAcl);
|
||||||
FindNtMartaProc(TreeResetNamedSecurityInfo);
|
FindNtMartaProc(TreeResetNamedSecurityInfo);
|
||||||
|
#endif
|
||||||
FindNtMartaProc(GetInheritanceSource);
|
FindNtMartaProc(GetInheritanceSource);
|
||||||
FindNtMartaProc(FreeIndexArray);
|
FindNtMartaProc(FreeIndexArray);
|
||||||
#endif
|
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,6 +121,43 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* 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
|
BOOL STDCALL
|
||||||
DllMain(IN HINSTANCE hinstDLL,
|
DllMain(IN HINSTANCE hinstDLL,
|
||||||
IN DWORD dwReason,
|
IN DWORD dwReason,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
LIBRARY ntmarta.dll
|
LIBRARY ntmarta.dll
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
;AccFreeIndexArray
|
AccFreeIndexArray@12
|
||||||
;AccGetInheritanceSource
|
AccGetInheritanceSource@40
|
||||||
;AccProvHandleGrantAccessRights;
|
;AccProvHandleGrantAccessRights;
|
||||||
;AccRewriteGetExplicitEntriesFromAcl
|
;AccRewriteGetExplicitEntriesFromAcl
|
||||||
AccRewriteGetHandleRights@32
|
AccRewriteGetHandleRights@32
|
||||||
|
|
Loading…
Reference in a new issue