DebugORPCServerNotify

void DebugORPCServerNotify(pMessage, iid, pChannel, pInterface, pUnkObject, pvBuffer, cbBuffer)

Called on the server side immediately before calling IRpcStubBuffer::Invoke() to inform it that there is an incoming request. Will start the debugger in this process if need be. See the above overview for further details.

The GUID for this notification is 1084FA00-9674-101A-B07B-00DD01113F11:


GUID __private_to_macro__ = { /* 1084FA00-9674-101A-B07B-00DD01113F11 */
    0x1084FA00,
    0x9674,
    0x101A,
    0xB0,
    0x7B,
    {0x00, 0xDD, 0x01, 0x11, 0x3F, 0x11}
  };

On entry, the members of pMessage are set as follows:

Member Name

Value on entry to Invoke()

reserved members

Indeterminate. These members are neither to be read nor to be changed by the callee.

dataRepresentation

This indicates the byte order, and so forth, of the client debugger.

pvBuffer

Points to a buffer which contains the marshaled incoming arguments. In the case that there are no such arguments (for example, cbBuffer == 0), pvBuffer may be NULL, but will not necessarily be so.

cbBuffer

The size in bytes of the memory buffer to which pvBuffer points. If pvBuffer is NULL, then cbBuffer will be zero (but the converse is not necessarily true, as was mentioned in pvBuffer).

iMethod

The zero-based method number in the interface which is being invoked.

rpcFlags

Indeterminate. Neither to be read nor to be changed by the callee.


Argument

Type

Description

pMessage

RPCOLEMESSAGE*

As in IRpcStubBuffer::Invoke().

iid

REFIID

Contains the iid of the interface being called.

pChannel

IRpcChannelBuffer*

As in IRpcStubBuffer::Invoke(). The COM RPC channel implementation on the server side.

pInterface

void *

This contains the pointer to the COM interface instance which contains the pointer to the method that will be invoked by this particular remote procedure call. Debuggers can use this information in conjunction with the iMethod field of the pMessage structure to get to the address of the method to be invoked. May not be NULL.

pUnkObject

IUnknown *

This pointer is currently NULL. In the future this might be used to pass the controlling IUnknown of the server object whose method is being invoked.

pvBuffer

void *

The pointer to the incoming debug information. Is undefined (may or may not be NULL) if cbBuffer is zero.

cbBuffer

ULONG

The size of the data pointed to by pvBuffer. May be zero, but as described above, a size of zero can only passed in the case that debugging is already enabled.