Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions src/coreclr/inc/xclrdata.idl
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,38 @@ interface IXCLRDataProcess2 : IXCLRDataProcess
HRESULT SetGcNotification([in] GcEvtArgs gcEvtArgs);
}

[
object,
local,
uuid(5c552ab6-fc09-4cb3-8e36-22fa03c798b9)
]
interface IXCLRDataProcess3 : IXCLRDataProcess2
{
/*
* tableAddress identifies the target dynamic-function-table header. Records
* are returned in caller-provided storage as contiguous target-native
* RUNTIME_FUNCTION bytes. The callee never allocates output storage, and the
* caller-provided buffer does not require any particular alignment.
*
* bytesNeeded and entries are required outputs that are initialized and
* reported on every valid call. A null buffer with a zero bufferSize queries
* the required size. If the buffer is too small, no data is written,
* bytesNeeded and entries report the required byte and record counts, and
* the method returns S_FALSE. If the buffer is large enough, the complete
* table is written and the method returns S_OK. An empty or unmatched table
* returns S_OK with bytesNeeded and entries both set to zero.
*
* Target memory is an immutable snapshot between IXCLRDataProcess::Flush
* calls, so repeated calls before Flush are idempotent. The caller must call
* Flush after changing the data target.
*/
HRESULT GetFunctionTable([in] CLRDATA_ADDRESS tableAddress,
[in] ULONG32 bufferSize,
[out, size_is(bufferSize)] BYTE* buffer,
[out] ULONG32* bytesNeeded,
[out] ULONG32* entries);
}

typedef enum
{
CLRDATA_DOMAIN_DEFAULT = 0x00000000,
Expand Down
4 changes: 3 additions & 1 deletion src/coreclr/pal/prebuilt/idl/xclrdata_i.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ MIDL_DEFINE_GUID(IID, IID_IXCLRDataProcess,0x5c552ab6,0xfc09,0x4cb3,0x8e,0x36,0x
MIDL_DEFINE_GUID(IID, IID_IXCLRDataProcess2,0x5c552ab6,0xfc09,0x4cb3,0x8e,0x36,0x22,0xfa,0x03,0xc7,0x98,0xb8);


MIDL_DEFINE_GUID(IID, IID_IXCLRDataProcess3,0x5c552ab6,0xfc09,0x4cb3,0x8e,0x36,0x22,0xfa,0x03,0xc7,0x98,0xb9);


MIDL_DEFINE_GUID(IID, IID_IXCLRDataAppDomain,0x7CA04601,0xC702,0x4670,0xA6,0x3C,0xFA,0x44,0xF7,0xDA,0x7B,0xD5);


Expand Down Expand Up @@ -141,4 +144,3 @@ MIDL_DEFINE_GUID(IID, IID_IXCLRDataExceptionNotification5,0xe77a39ea,0x3548,0x44
#endif



Loading
Loading