/*++ 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 *); typedef SCESTATUS (WINAPI *PFSCEOPENPROFILE)(PCWSTR, SCE_FORMAT_TYPE, PVOID *); typedef SCESTATUS (WINAPI *PFSCECLOSEPROFILE)(PVOID *); #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 #define SCEGPO_NOCHECK_EXISTENCE 3 DWORD ScepNotifyGetDefaultGPOTemplateName( IN UNICODE_STRING DnsDomainName, IN PWSTR ComputerName OPTIONAL, 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