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.

110 lines
3.1 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. typedef struct _SCMREGKEY
  28. {
  29. ULONG64 dwEntryLoc;
  30. DWORD dwPadding; // Added to optimize memory accesses in Win64
  31. DWORD dwScmId;
  32. } SCMREGKEY;
  33. typedef struct _MnkEqBuf
  34. {
  35. DWORD cdwSize;
  36. [size_is(cdwSize)]
  37. BYTE abEqData[];
  38. } MNKEQBUF;
  39. typedef struct _MkInterfaceList
  40. {
  41. DWORD dwSize;
  42. [size_is(dwSize)]
  43. InterfaceData *apIFDList[];
  44. } MkInterfaceList;
  45. HRESULT IrotRegister(
  46. [in] handle_t hRpc,
  47. [in] PHPROCESS phProcess,
  48. [in,unique,string] WCHAR *pwszWinstaDesktop,
  49. [in] MNKEQBUF *pmkeqbuf,
  50. [in] InterfaceData *pifdObject,
  51. [in] InterfaceData *pifdObjectName,
  52. [in] FILETIME *pfiletime,
  53. [in] DWORD dwProcessId,
  54. [in,unique,string] WCHAR *pwszServerExe,
  55. [out] SCMREGKEY *psrkRegister,
  56. [out] error_status_t *prpcstat);
  57. HRESULT IrotRevoke(
  58. [in] handle_t hRpc,
  59. [in] SCMREGKEY *psrkRegister,
  60. [in] BOOL fServerRevoke,
  61. [out] InterfaceData **pifdObject,
  62. [out] InterfaceData **pifdName,
  63. [out] error_status_t *prpcstat);
  64. HRESULT IrotIsRunning(
  65. [in] handle_t hRpc,
  66. [in] PHPROCESS phProcess,
  67. [in,unique,string] WCHAR *pwszWinstaDesktop,
  68. [in] MNKEQBUF *pmkeqbuf,
  69. [out] error_status_t *prpcstat);
  70. HRESULT IrotGetObject(
  71. [in] handle_t hRpc,
  72. [in] PHPROCESS phProcess,
  73. [in,unique,string] WCHAR *pwszWinstaDesktop,
  74. [in] DWORD dwProcessId,
  75. [in] MNKEQBUF *pmkeqbuf,
  76. [out] SCMREGKEY *psrkRegister,
  77. [out] InterfaceData **pifdObject,
  78. [out] error_status_t *prpcstat);
  79. HRESULT IrotNoteChangeTime(
  80. [in] handle_t hRpc,
  81. [in] SCMREGKEY *psrkRegister,
  82. [in] FILETIME *pfiletime,
  83. [out] error_status_t *prpcstat);
  84. HRESULT IrotGetTimeOfLastChange(
  85. [in] handle_t hRpc,
  86. [in] PHPROCESS phProcess,
  87. [in,unique,string] WCHAR *pwszWinstaDesktop,
  88. [in] MNKEQBUF *pmkeqbuf,
  89. [out] FILETIME *pfiletime,
  90. [out] error_status_t *prpcstat);
  91. HRESULT IrotEnumRunning(
  92. [in] handle_t hRpc,
  93. [in] PHPROCESS phProcess,
  94. [in,unique,string] WCHAR *pwszWinstaDesktop,
  95. [out] MkInterfaceList **ppMkIFList,
  96. [out] error_status_t *prpcstat);
  97. }
  98.