148 lines
4 KiB
C++
148 lines
4 KiB
C++
//+-------------------------------------------------------------------
|
|
//
|
|
// 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
|