//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1993. // // File: irot.idl // // Contents: Definition of private RPC interface between compobj.dll // and the SCM that implements the ROT. // // History: 20-Jan-95 Ricksa Created // //-------------------------------------------------------------------------- [ uuid(B9E79E60-3D52-11CE-AAA1-00006901293F), version(0.2), pointer_default(unique) ] interface IROT { import "iface.idl"; #pragma midl_echo(" ") #pragma midl_echo("//------------------------") #pragma midl_echo("// Invalid Key for SCM Reg") #pragma midl_echo("//------------------------") #pragma midl_echo("#define SCMREG_INVALID_ENTRY_LOC ((ULONG64)-1)") #pragma midl_echo(" ") typedef [context_handle] void *PHPROCESS; const DWORD MAX_MNK_STUFF = 0x80000; typedef struct _SCMREGKEY { ULONG64 dwEntryLoc; DWORD dwHash; DWORD dwScmId; } SCMREGKEY; typedef struct _MnkEqBuf { [range(0,MAX_MNK_STUFF)] DWORD cdwSize; [size_is(cdwSize)] BYTE abEqData[]; } MNKEQBUF; typedef struct _MkInterfaceList { [range(0,MAX_MNK_STUFF)] DWORD dwSize; [size_is(dwSize)] InterfaceData *apIFDList[]; } MkInterfaceList; HRESULT IrotRegister( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in,unique,string] WCHAR *pwszWinstaDesktop, [in] MNKEQBUF *pmkeqbuf, [in] InterfaceData *pifdObject, [in] InterfaceData *pifdObjectName, [in] FILETIME *pfiletime, [in] DWORD dwProcessId, [in,unique,string] WCHAR *pwszServerExe, [out] SCMREGKEY *psrkRegister, [out] error_status_t *prpcstat); HRESULT IrotRevoke( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in] SCMREGKEY *psrkRegister, [out] InterfaceData **pifdObject, [out] InterfaceData **pifdName, [out] error_status_t *prpcstat); HRESULT IrotIsRunning( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in,unique,string] WCHAR *pwszWinstaDesktop, [in] MNKEQBUF *pmkeqbuf, [out] error_status_t *prpcstat); HRESULT IrotGetObject( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in,unique,string] WCHAR *pwszWinstaDesktop, [in] DWORD dwProcessId, [in] MNKEQBUF *pmkeqbuf, [out] SCMREGKEY *psrkRegister, [out] InterfaceData **pifdObject, [out] error_status_t *prpcstat); HRESULT IrotNoteChangeTime( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in] SCMREGKEY *psrkRegister, [in] FILETIME *pfiletime, [out] error_status_t *prpcstat); HRESULT IrotGetTimeOfLastChange( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in,unique,string] WCHAR *pwszWinstaDesktop, [in] MNKEQBUF *pmkeqbuf, [out] FILETIME *pfiletime, [out] error_status_t *prpcstat); HRESULT IrotEnumRunning( [in] handle_t hRpc, [in] PHPROCESS phProcess, [in,unique,string] WCHAR *pwszWinstaDesktop, [out] MkInterfaceList **ppMkIFList, [out] error_status_t *prpcstat); }