windows-nt/Source/XPSP1/NT/ds/security/services/scerpc/server/srvrpcp.h
2020-09-26 16:20:57 +08:00

314 lines
6.2 KiB
C

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
srvrpcp.h
Abstract:
This module defines private APIs called from the RPC interfaces on server
site.
Author:
Jin Huang (jinhuang) 28-Oct-1996
Revision History:
jinhuang 26-Jan-1998 splitted for client-server
--*/
#ifndef _srvrpcp_
#define _srvrpcp_
#ifdef __cplusplus
extern "C" {
#endif
typedef SCESTATUS (WINAPI *PFSCEINFWRITEINFO)(LPCTSTR, AREA_INFORMATION, PSCE_PROFILE_INFO, PSCE_ERROR_LOG_INFO *);
typedef SCESTATUS (WINAPI *PFSCEGETINFO)(PVOID, SCETYPE, AREA_INFORMATION, PSCE_PROFILE_INFO *, PSCE_ERROR_LOG_INFO *);
#define SCEPOL_SAVE_BUFFER 0x1
#define SCEPOL_SAVE_DB 0x2
#define SCEPOL_SYSTEM_SETTINGS 0x4
//
// svcsrv.cpp
//
SCESTATUS
SceSvcpUpdateInfo(
IN PSCECONTEXT Context,
IN PCWSTR ServiceName,
IN PSCESVC_CONFIGURATION_INFO Info
);
SCESTATUS
SceSvcpQueryInfo(
IN PSCECONTEXT Context,
IN SCESVC_INFO_TYPE SceSvcType,
IN PCWSTR ServiceName,
IN PWSTR Prefix OPTIONAL,
IN BOOL bExact,
OUT PVOID *ppvInfo,
OUT PSCE_ENUMERATION_CONTEXT psceEnumHandle
);
SCESTATUS
SceSvcpSetInfo(
IN PSCECONTEXT Context,
IN SCESVC_INFO_TYPE SceSvcType,
IN PCWSTR ServiceName,
IN PWSTR Prefix OPTIONAL,
IN BOOL bExact,
IN LONG GpoID,
IN PVOID pvInfo OPTIONAL
);
//
// setupsrv.cpp
//
DWORD
ScepSetupUpdateObject(
IN PSCECONTEXT Context,
IN PWSTR ObjectFullName,
IN SE_OBJECT_TYPE ObjectType,
IN UINT nFlag,
IN PWSTR SDText
);
DWORD
ScepSetupMoveFile(
IN PSCECONTEXT Context,
PWSTR OldName,
PWSTR NewName OPTIONAL,
PWSTR SDText OPTIONAL
);
//
// pfget.cpp
//
SCESTATUS
ScepGetDatabaseInfo(
IN PSCECONTEXT Context,
IN SCETYPE ProfileType,
IN AREA_INFORMATION Area,
IN DWORD dwAccountFormat,
OUT PSCE_PROFILE_INFO *ppInfoBuffer,
IN OUT PSCE_ERROR_LOG_INFO *Errlog OPTIONAL
);
SCESTATUS
ScepGetObjectChildren(
IN PSCECONTEXT Context,
IN SCETYPE ProfileType,
IN AREA_INFORMATION Area,
IN PWSTR ObjectPrefix,
IN SCE_SUBOBJECT_TYPE Option,
OUT PVOID *Buffer,
OUT PSCE_ERROR_LOG_INFO *Errlog OPTIONAL
);
SCESTATUS
ScepGetObjectSecurity(
IN PSCECONTEXT Context,
IN SCETYPE ProfileType,
IN AREA_INFORMATION Area,
IN PWSTR ObjectName,
OUT PSCE_OBJECT_SECURITY *ObjSecurity
);
//
// ScepCopyObjects is called for each area
// within the RPC interface SceRpcCopyObjects
// for system service or security policy area
// attchments needs to be considered
//
SCESTATUS
ScepGetAnalysisSummary(
IN PSCECONTEXT Context,
IN AREA_INFORMATION Area,
OUT PDWORD pCount
);
//
// server.cpp
//
SCESTATUS
ScepOpenDatabase(
IN PCWSTR DatabaseName,
IN DWORD OpenOption,
IN SCEJET_OPEN_TYPE OpenType,
OUT PSCECONTEXT *pContext
);
SCESTATUS
ScepCloseDatabase(
IN PSCECONTEXT Context
);
//
// SceJetGetDescription, SceJetGetTimeStamp
// SceJetStartTransaction, SceJetCommitTransaction, SceJetRollback,
// RtlGetNtProductType (for SceRpcGetServerProductType)
// are called within the RPC interfaces directly
//
//
// config.c
//
SCESTATUS
ScepConfigureSystem(
IN PCWSTR InfFileName OPTIONAL,
IN PWSTR DatabaseName,
IN DWORD ConfigOptions,
IN BOOL bAdminLogon,
IN AREA_INFORMATION Area,
OUT PDWORD pdWarning OPTIONAL
);
//
// analyze.c
//
SCESTATUS
ScepAnalyzeSystem(
IN PCWSTR InfFileName OPTIONAL,
IN PWSTR DatabaseName,
IN DWORD AnalyzeOptions,
IN BOOL bAdminLogon,
IN AREA_INFORMATION Area,
IN PDWORD pdWarning OPTIONAL,
IN PWSTR InfRollback OPTIONAL
);
SCESTATUS
ScepAnalyzeSystemAccess(
IN PSCE_PROFILE_INFO pSmpInfo,
IN PSCE_PROFILE_INFO pScpInfo OPTIONAL,
IN DWORD dwSaveOption,
OUT BOOL *pbChanged,
IN OUT PSCE_ERROR_LOG_INFO *pErrLog
);
//
// editsave.c
//
SCESTATUS
ScepUpdateDatabaseInfo(
IN PSCECONTEXT hProfile,
IN AREA_INFORMATION Area,
IN PSCE_PROFILE_INFO pInfo
);
SCESTATUS
ScepUpdateLocalTable(
IN PSCECONTEXT hProfile,
IN AREA_INFORMATION Area,
IN PSCE_PROFILE_INFO pInfo,
IN DWORD dwMode
);
SCESTATUS
ScepUpdateObjectInfo(
IN PSCECONTEXT hProfile,
IN AREA_INFORMATION Area,
IN PWSTR ObjectName,
IN DWORD NameLen,
IN BYTE ConfigStatus,
IN BOOL IsContainer,
IN PSECURITY_DESCRIPTOR pSD,
IN SECURITY_INFORMATION SeInfo,
OUT PBYTE pAnalysisStatus
);
//
// polsrv.cpp
//
DWORD
ScepNotifyGetChangedPolicies(
IN SECURITY_DB_TYPE DbType,
IN SECURITY_DB_DELTA_TYPE DeltaType,
IN SECURITY_DB_OBJECT_TYPE ObjectType,
IN PSID ObjectSid OPTIONAL,
IN OUT PSCE_PROFILE_INFO pSmpInfo,
IN PSCE_PROFILE_INFO pScpInfo OPTIONAL,
IN BOOL bSaveToLocal,
IN DWORD ExplicitLowRight,
IN DWORD ExplicitHighRight,
OUT BOOL *pbChanged
);
DWORD
ScepNotifySaveChangedPolicies(
IN PSCECONTEXT hProfile,
IN SECURITY_DB_TYPE DbType,
IN AREA_INFORMATION Area,
IN PSCE_PROFILE_INFO pInfo,
IN PSCE_PROFILE_INFO pMergedInfo OPTIONAL
);
#define SCEGPO_INSETUP_NT4 1
#define SCEGPO_INSETUP_NT5 2
DWORD
ScepNotifyGetDefaultGPOTemplateName(
UNICODE_STRING DnsDomainName,
IN BOOL bDomainPolicy,
IN DWORD dwInSetup,
OUT LPTSTR *pTemplateName
);
DWORD
ScepNotifySaveNotifications(
IN PWSTR TemplateName,
IN SECURITY_DB_TYPE DbType,
IN SECURITY_DB_OBJECT_TYPE ObjectType,
IN SECURITY_DB_DELTA_TYPE DeltaType,
IN PSID ObjectSid OPTIONAL
);
DWORD
ScepNotifyUpdateGPOVersion(
IN PWSTR GpoTemplateName,
IN BOOL bDomainPolicy
);
//
// analyze.cpp
//
SCESTATUS
ScepGetSystemSecurity(
IN AREA_INFORMATION Area,
IN DWORD Options,
OUT PSCE_PROFILE_INFO *ppInfo,
OUT PSCE_ERROR_LOG_INFO *pErrLog
);
//
// config.cpp
//
SCESTATUS
ScepSetSystemSecurity(
IN AREA_INFORMATION Area,
IN DWORD ConfigOptions,
IN PSCE_PROFILE_INFO pInfo,
OUT PSCE_ERROR_LOG_INFO *pErrLog
);
#ifdef __cplusplus
}
#endif
#endif