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.

116 lines
3.4 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1993.
  5. //
  6. // File: irot.idl
  7. //
  8. // Contents: Definition of private RPC interface between compobj.dll
  9. // and the SCM that implements the ROT.
  10. //
  11. // History: 20-Jan-95 Ricksa Created
  12. //
  13. //--------------------------------------------------------------------------
  14. [ uuid(B9E79E60-3D52-11CE-AAA1-00006901293F),
  15. version(0.2),
  16. pointer_default(unique) ]
  17. interface IROT
  18. {
  19. import "iface.idl";
  20. #pragma midl_echo(" ")
  21. #pragma midl_echo("//------------------------")
  22. #pragma midl_echo("// Invalid Key for SCM Reg")
  23. #pragma midl_echo("//------------------------")
  24. #pragma midl_echo("#define SCMREG_INVALID_ENTRY_LOC ((ULONG64)-1)")
  25. #pragma midl_echo(" ")
  26. typedef [context_handle] void *PHPROCESS;
  27. const DWORD MAX_MNK_STUFF = 0x80000;
  28. typedef struct _SCMREGKEY
  29. {
  30. ULONG64 dwEntryLoc;
  31. DWORD dwHash;
  32. DWORD dwScmId;
  33. } SCMREGKEY;
  34. typedef struct _MnkEqBuf
  35. {
  36. [range(0,MAX_MNK_STUFF)]
  37. DWORD cdwSize;
  38. [size_is(cdwSize)]
  39. BYTE abEqData[];
  40. } MNKEQBUF;
  41. typedef struct _MkInterfaceList
  42. {
  43. [range(0,MAX_MNK_STUFF)]
  44. DWORD dwSize;
  45. [size_is(dwSize)]
  46. InterfaceData *apIFDList[];
  47. } MkInterfaceList;
  48. HRESULT IrotRegister(
  49. [in] handle_t hRpc,
  50. [in] PHPROCESS phProcess,
  51. [in,unique,string] WCHAR *pwszWinstaDesktop,
  52. [in] MNKEQBUF *pmkeqbuf,
  53. [in] InterfaceData *pifdObject,
  54. [in] InterfaceData *pifdObjectName,
  55. [in] FILETIME *pfiletime,
  56. [in] DWORD dwProcessId,
  57. [in,unique,string] WCHAR *pwszServerExe,
  58. [out] SCMREGKEY *psrkRegister,
  59. [out] error_status_t *prpcstat);
  60. HRESULT IrotRevoke(
  61. [in] handle_t hRpc,
  62. [in] PHPROCESS phProcess,
  63. [in] SCMREGKEY *psrkRegister,
  64. [out] InterfaceData **pifdObject,
  65. [out] InterfaceData **pifdName,
  66. [out] error_status_t *prpcstat);
  67. HRESULT IrotIsRunning(
  68. [in] handle_t hRpc,
  69. [in] PHPROCESS phProcess,
  70. [in,unique,string] WCHAR *pwszWinstaDesktop,
  71. [in] MNKEQBUF *pmkeqbuf,
  72. [out] error_status_t *prpcstat);
  73. HRESULT IrotGetObject(
  74. [in] handle_t hRpc,
  75. [in] PHPROCESS phProcess,
  76. [in,unique,string] WCHAR *pwszWinstaDesktop,
  77. [in] DWORD dwProcessId,
  78. [in] MNKEQBUF *pmkeqbuf,
  79. [out] SCMREGKEY *psrkRegister,
  80. [out] InterfaceData **pifdObject,
  81. [out] error_status_t *prpcstat);
  82. HRESULT IrotNoteChangeTime(
  83. [in] handle_t hRpc,
  84. [in] PHPROCESS phProcess,
  85. [in] SCMREGKEY *psrkRegister,
  86. [in] FILETIME *pfiletime,
  87. [out] error_status_t *prpcstat);
  88. HRESULT IrotGetTimeOfLastChange(
  89. [in] handle_t hRpc,
  90. [in] PHPROCESS phProcess,
  91. [in,unique,string] WCHAR *pwszWinstaDesktop,
  92. [in] MNKEQBUF *pmkeqbuf,
  93. [out] FILETIME *pfiletime,
  94. [out] error_status_t *prpcstat);
  95. HRESULT IrotEnumRunning(
  96. [in] handle_t hRpc,
  97. [in] PHPROCESS phProcess,
  98. [in,unique,string] WCHAR *pwszWinstaDesktop,
  99. [out] MkInterfaceList **ppMkIFList,
  100. [out] error_status_t *prpcstat);
  101. }
  102.