Source code of Windows XP (NT5)
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.

97 lines
1.9 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. dcomss.h
  5. Abstract:
  6. Common services provided by core the orpcss service.
  7. Author:
  8. Mario Goertzel [MarioGo]
  9. Revision History:
  10. MarioGo 06-14-95 Bits 'n pieces
  11. --*/
  12. #ifndef __DCOMSS_H
  13. #define __DCOMSS_H
  14. #include <nt.h>
  15. #include <ntdef.h>
  16. #include <ntrtl.h>
  17. #include <nturtl.h>
  18. #include <windows.h>
  19. #include <rpc.h>
  20. #include <winsvc.h>
  21. #include <winsafer.h>
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. #if DBG
  26. #if !defined(DEBUGRPC)
  27. #define DEBUGRPC
  28. #endif
  29. #endif // DBG
  30. // Endpoint related functions
  31. RPC_STATUS InitializeEndpointManager(VOID);
  32. USHORT GetProtseqId(PWSTR Protseq);
  33. USHORT GetProtseqIdAnsi(PSTR Protseq);
  34. PWSTR GetProtseq(USHORT ProtseqId);
  35. PWSTR GetEndpoint(USHORT ProtseqId);
  36. RPC_STATUS UseProtseqIfNecessary(USHORT id);
  37. RPC_STATUS DelayedUseProtseq(USHORT id);
  38. VOID CompleteDelayedUseProtseqs();
  39. BOOL IsLocal(USHORT ProtseqId);
  40. void RegisterAuthInfoIfNecessary();
  41. // Must be given dedicated a thread after startup.
  42. DWORD ObjectExporterWorkerThread(PVOID);
  43. // Update service state
  44. VOID UpdateState(DWORD dwNewState);
  45. extern BOOL s_fEnableDCOM; // Set by StartObjectExporter.
  46. DWORD StartEndpointMapper(VOID);
  47. DWORD StartMqManagement(VOID);
  48. DWORD StartObjectExporter(VOID);
  49. DWORD InitializeSCMBeforeListen(VOID);
  50. DWORD InitializeSCM(VOID);
  51. void InitializeSCMAfterListen(VOID);
  52. // Shared by wrapper\epts.c and olescm\clsdata.cxx.
  53. typedef enum {
  54. STOPPED = 1,
  55. START,
  56. STARTED
  57. } PROTSEQ_STATE;
  58. typedef struct {
  59. PROTSEQ_STATE state;
  60. PWSTR pwstrProtseq;
  61. PWSTR pwstrEndpoint;
  62. } PROTSEQ_INFO;
  63. #if DBG==1 && defined(WIN32)
  64. #define SCMVDATEHEAP() if(!HeapValidate(GetProcessHeap(),0,0)){ DebugBreak();}
  65. #else
  66. #define SCMVDATEHEAP()
  67. #endif // DBG==1 && defined(WIN32)
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71. #endif