Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
5.9 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. serverp.h
  5. Abstract:
  6. This module defines the data structures and function prototypes
  7. for the security managment utility
  8. Author:
  9. Jin Huang (jinhuang) 28-Oct-1996
  10. Revision History:
  11. jinhuang 26-Jan-1998 splitted for client-server
  12. --*/
  13. #ifndef _serverp_
  14. #define _serverp_
  15. #include "headers.h"
  16. #include <ntsam.h>
  17. #include <ntlsa.h>
  18. #include <ntseapi.h>
  19. #include <ntdddisk.h>
  20. #define OEMRESOURCE // setting this gets OBM_ constants in windows.h
  21. #include <winspool.h>
  22. #include <ddeml.h>
  23. #include <commdlg.h>
  24. #include <commctrl.h>
  25. #include <cfgmgr32.h>
  26. //#include <objbase.h>
  27. #include <userenv.h>
  28. #include <regstr.h>
  29. #include <setupbat.h>
  30. #include <aclapi.h>
  31. #include <winldap.h>
  32. #include "scejetp.h"
  33. //
  34. // the following header is defined as a c header so both c and cpp can
  35. // link to the client lib
  36. //
  37. #include "scesvc.h"
  38. #include "scerpc.h"
  39. #include "scep.h"
  40. #include "srvutil.h"
  41. #include "srvrpcp.h"
  42. #include "scesrvrc.h"
  43. #include "sceutil.h"
  44. #include "service.h"
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48. #if _WIN32_WINNT>=0x0500
  49. #include <dsgetdc.h>
  50. #include <ntdsapi.h>
  51. typedef DWORD (WINAPI *PFNDSGETDCNAME)(LPCTSTR, LPCTSTR, GUID *, LPCTSTR, ULONG, PDOMAIN_CONTROLLER_INFO *);
  52. typedef DWORD (WINAPI *PFNNETAPIFREE)(LPVOID);
  53. #endif
  54. #define Thread __declspec( thread )
  55. #define SCEP_LMC_SETTING L"MACHINE\\System\\CurrentControlSet\\Control\\Lsa\\LmCompatibilityLevel"
  56. #define SCEP_SECURE_CHANNEL_SIGNING_SETTING L"MACHINE\\System\\CurrentControlSet\\Services\\Netlogon\\Parameters\\RequireSignOrSeal"
  57. #define SCEP_SECURITY_SIGNATURE_SETTING L"MACHINE\\System\\CurrentControlSet\\Services\\LanManServer\\Parameters\\EnableSecuritySignature"
  58. #define SCEP_DRIVER_SIGNING_SETTING L"MACHINE\\Software\\Microsoft\\Driver Signing\\Policy"
  59. extern DWORD Thread gCurrentTicks;
  60. extern DWORD Thread gTotalTicks;
  61. extern BYTE Thread cbClientFlag;
  62. extern DWORD Thread gWarningCode;
  63. extern BOOL Thread gbInvalidData;
  64. extern BOOL Thread bLogOn;
  65. extern INT Thread gDebugLevel;
  66. extern DWORD Thread gMaxRegTicks;
  67. extern DWORD Thread gMaxFileTicks;
  68. extern DWORD Thread gMaxDsTicks;
  69. extern NT_PRODUCT_TYPE Thread ProductType;
  70. extern PSID Thread AdminsSid;
  71. #define SCE_RPC_SERVER_ACTIVE L"SCE_RPC_SERVER_ACTIVE"
  72. #define SCE_RPC_SERVER_STOPPED L"SCE_RPC_SERVER_STOPPED"
  73. //
  74. // prototypes in server.cpp
  75. //
  76. VOID
  77. ScepInitServerData();
  78. VOID
  79. ScepUninitServerData();
  80. NTSTATUS
  81. ScepStartServerServices();
  82. NTSTATUS
  83. ScepStopServerServices(
  84. IN BOOL bShutDown
  85. );
  86. SCESTATUS
  87. ScepPostProgress(
  88. IN DWORD Delta,
  89. IN AREA_INFORMATION Area,
  90. IN LPTSTR szName OPTIONAL
  91. );
  92. SCESTATUS
  93. ScepRsopLog(
  94. IN AREA_INFORMATION Area,
  95. IN DWORD dwConfigStatus,
  96. IN wchar_t *pStatusInfo OPTIONAL,
  97. IN DWORD dwPrivLow OPTIONAL,
  98. IN DWORD dwPrivHigh OPTIONAL
  99. );
  100. BOOL
  101. ScepIsSystemShutDown();
  102. SCESTATUS
  103. ScepServerCancelTimer();
  104. //
  105. // prototypes in errlog.c
  106. //
  107. SCESTATUS
  108. ScepSetVerboseLog(
  109. IN INT dbgLevel
  110. );
  111. SCESTATUS
  112. ScepEnableDisableLog(
  113. IN BOOL bOnOff
  114. );
  115. //
  116. // prototypes defined in tree.c
  117. //
  118. SCESTATUS
  119. ScepBuildObjectTree(
  120. IN OUT PSCE_OBJECT_TREE *ParentNode,
  121. IN OUT PSCE_OBJECT_CHILD_LIST *ChildHead,
  122. IN ULONG Level,
  123. IN WCHAR Delim,
  124. IN PCWSTR ObjectFullName,
  125. IN BOOL IsContainer,
  126. IN BYTE Status,
  127. IN PSECURITY_DESCRIPTOR pInfSecurityDescriptor,
  128. IN SECURITY_INFORMATION InfSeInfo
  129. );
  130. SCESTATUS
  131. ScepCalculateSecurityToApply(
  132. IN PSCE_OBJECT_TREE ThisNode,
  133. IN SE_OBJECT_TYPE ObjectType,
  134. IN HANDLE Token,
  135. IN PGENERIC_MAPPING GenericMapping
  136. );
  137. SCESTATUS
  138. ScepConfigureObjectTree(
  139. IN PSCE_OBJECT_TREE ThisNode,
  140. IN SE_OBJECT_TYPE ObjectType,
  141. IN HANDLE Token,
  142. IN PGENERIC_MAPPING GenericMapping,
  143. IN DWORD ConfigOptions
  144. );
  145. SCESTATUS
  146. ScepFreeObject2Security(
  147. IN PSCE_OBJECT_CHILD_LIST NodeList,
  148. IN BOOL bFreeComputedSDOnly
  149. );
  150. DWORD
  151. ScepSetSecurityWin32(
  152. IN PCWSTR ObjectName,
  153. IN SECURITY_INFORMATION SeInfo,
  154. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  155. IN SE_OBJECT_TYPE ObjectType
  156. );
  157. DWORD
  158. ScepSetSecurityObjectOnly(
  159. IN PCWSTR ObjectName,
  160. IN SECURITY_INFORMATION SeInfo,
  161. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  162. IN SE_OBJECT_TYPE ObjectType,
  163. OUT PBOOL pbHasChild
  164. );
  165. DWORD
  166. ScepGetNewSecurity(
  167. IN LPTSTR ObjectName,
  168. IN PSECURITY_DESCRIPTOR pParentSD OPTIONAL,
  169. IN PSECURITY_DESCRIPTOR pObjectSD OPTIONAL,
  170. IN BYTE nFlag,
  171. IN BOOLEAN bIsContainer,
  172. IN SECURITY_INFORMATION SeInfo,
  173. IN SE_OBJECT_TYPE ObjectType,
  174. IN HANDLE Token,
  175. IN PGENERIC_MAPPING GenericMapping,
  176. OUT PSECURITY_DESCRIPTOR *ppNewSD
  177. );
  178. SCESTATUS
  179. ScepSetupResetLocalPolicy(
  180. IN PSCECONTEXT Context,
  181. IN AREA_INFORMATION Area,
  182. IN PCWSTR SectionName OPTIONAL,
  183. IN SCETYPE ProfileType,
  184. IN BOOL bKeepBasicPolicy
  185. );
  186. DWORD
  187. ScepAddSidStringToNameList(
  188. IN OUT PSCE_NAME_LIST *ppNameList,
  189. IN PSID pSid
  190. );
  191. DWORD
  192. ScepNotifyProcessOneNodeDC(
  193. IN SECURITY_DB_TYPE DbType,
  194. IN SECURITY_DB_OBJECT_TYPE ObjectType,
  195. IN SECURITY_DB_DELTA_TYPE DeltaType,
  196. IN PSID ObjectSid,
  197. IN DWORD ExplicitLowRight,
  198. IN DWORD ExplicitHighRight,
  199. OUT BOOL *pbTimeout
  200. );
  201. VOID
  202. ScepConfigureConvertedFileSecurityThreadFunc(
  203. IN PVOID pV
  204. );
  205. VOID
  206. ScepWaitForServicesEventAndConvertSecurityThreadFunc(
  207. IN PVOID pV
  208. );
  209. DWORD
  210. ScepServerConfigureSystem(
  211. IN PWSTR InfFileName,
  212. IN PWSTR DatabaseName,
  213. IN PWSTR LogFileName,
  214. IN DWORD ConfigOptions,
  215. IN AREA_INFORMATION Area
  216. );
  217. #ifdef __cplusplus
  218. }
  219. #endif
  220. #endif