windows-nt/Source/XPSP1/NT/ds/security/ntmarta/newinc/rewrite.hxx

148 lines
4 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+-------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993 - 1995.
//
// File: access.hxx
//
// Contents: common internal includes for access control API
//
// History: 8-94 Created DaveMont
//
//--------------------------------------------------------------------
#ifndef __REWRITE_H__
#define __REWRITE_H__
#ifdef MARTA_TEST
#include "file.h"
#include "service.h"
#include "printer.h"
#include "registry.h"
#include "lmsh.h"
#include "kernel.h"
#include "window.h"
#include "ds.h"
#include "wmiguid.h"
#endif
#include "tables.h"
typedef struct _MARTA_GET_FUNCTION_CONTEXT {
FN_ADD_REF_CONTEXT fAddRefContext;
FN_CLOSE_CONTEXT fCloseContext;
FN_GET_DESIRED_ACCESS fGetDesiredAccess;
FN_OPEN_NAMED_OBJECT fOpenNamedObject;
FN_OPEN_HANDLE_OBJECT fOpenHandleObject;
FN_GET_RIGHTS fGetRights;
} MARTA_GET_FUNCTION_CONTEXT, *PMARTA_GET_FUNCTION_CONTEXT;
typedef struct _MARTA_SET_FUNCTION_CONTEXT {
FN_ADD_REF_CONTEXT fAddRefContext;
FN_CLOSE_CONTEXT fCloseContext;
FN_FIND_FIRST fFindFirst;
FN_FIND_NEXT fFindNext;
FN_GET_DESIRED_ACCESS fGetDesiredAccess;
FN_GET_PARENT_CONTEXT fGetParentContext;
FN_GET_PROPERTIES fGetProperties;
FN_GET_TYPE_PROPERTIES fGetTypeProperties;
FN_GET_RIGHTS fGetRights;
FN_OPEN_NAMED_OBJECT fOpenNamedObject;
FN_OPEN_HANDLE_OBJECT fOpenHandleObject;
FN_SET_RIGHTS fSetRights;
} MARTA_SET_FUNCTION_CONTEXT, *PMARTA_SET_FUNCTION_CONTEXT;
#if 0
DWORD
MartaInitializeGetContext(
IN SE_OBJECT_TYPE ObjectType,
OUT PMARTA_GET_FUNCTION_CONTEXT pFunctionContext
);
VOID
MartaGetSidsAndAclsFromSD(
IN SECURITY_INFORMATION SecurityInfo,
IN PSECURITY_DESCRIPTOR pSD,
OUT PSID * ppSidOwner,
OUT PSID * ppSidGroup,
OUT PACL * ppDacl,
OUT PACL * ppSacl,
OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
);
DWORD
MartaInitializeSetContext(
IN SE_OBJECT_TYPE ObjectType,
OUT PMARTA_SET_FUNCTION_CONTEXT pFunctionContext
);
DWORD
MartaManualPropagation(
IN MARTA_CONTEXT Context,
IN SECURITY_INFORMATION SecurityInfo,
IN PSECURITY_DESCRIPTOR pSD,
IN PGENERIC_MAPPING pGenMap,
IN PMARTA_SET_FUNCTION_CONTEXT pMartaSetFunctionContext
);
DWORD
MartaCompareAndMarkInheritedAces(
IN PACL pParentAcl,
IN PACL pChildAcl,
IN BOOL fIsChildContainer,
OUT PBOOL CompareStatus
);
DWORD
MartaGetNT4NodeSD(
IN PSECURITY_DESCRIPTOR pOldSD,
IN PSECURITY_DESCRIPTOR pOldChildSD,
IN HANDLE ProcessHandle,
IN BOOL fIsChildContainer,
IN PGENERIC_MAPPING pGenMap,
IN SECURITY_INFORMATION SecurityInfo
);
DWORD
MartaUpdateTree(
IN SECURITY_INFORMATION SecurityInfo,
IN PSECURITY_DESCRIPTOR pNewSD,
IN PSECURITY_DESCRIPTOR pOldSD,
IN MARTA_CONTEXT Context,
IN HANDLE ProcessHandle,
IN PMARTA_SET_FUNCTION_CONTEXT pMartaSetFunctionContext,
IN PGENERIC_MAPPING pGenMap
);
BOOL
MartaEqualAce(
IN PACE_HEADER pParentAce,
IN PACE_HEADER pChildAce,
IN BOOL fIsChildContainer
);
DWORD
AccRewriteGetNamedRights(
IN LPWSTR pObjectName,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
OUT PSID * ppSidOwner,
OUT PSID * ppSidGroup,
OUT PACL * ppDacl,
OUT PACL * ppSacl,
OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
);
DWORD
AccRewriteSetNamedRights(
IN LPWSTR pObjectName,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN PSECURITY_DESCRIPTOR pSecurityDescriptor
);
#endif
#endif