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.
 
 
 
 
 
 

111 lines
3.1 KiB

//+-------------------------------------------------------------------------
//
// 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;
typedef struct _SCMREGKEY
{
ULONG64 dwEntryLoc;
DWORD dwPadding; // Added to optimize memory accesses in Win64
DWORD dwScmId;
} SCMREGKEY;
typedef struct _MnkEqBuf
{
DWORD cdwSize;
[size_is(cdwSize)]
BYTE abEqData[];
} MNKEQBUF;
typedef struct _MkInterfaceList
{
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] SCMREGKEY *psrkRegister,
[in] BOOL fServerRevoke,
[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] 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);
}