ORPC_DBG_BUFFER 结构

ORPC_DBG_BUFFER 结构是用于将 RPC 数据封送到 IOrpcDebugNotify 接口的方法的缓冲区格式。

语法

typedef struct _ORPC_DBG_BUFFER {
  DWORD alwaysOrSometimes;
  BYTE  verMajor;
  BYTE  verMinor;
  DWORD cbRemaining;
  GUID  guidSemantic;
  union {
    BOOL   fStopOnOtherSide;
    USHORT wDebuggingOpCode;
    USHORT cExtent;
    BYTE   padding[2];
    struct {
      ULONG cb;
      GUID  guidExtent;
      BYTE  *rgbData;
    };
  };
} ORPC_DBG_BUFFER, *PORPC_DBG_BUFFER;

成员

alwaysOrSometimes

一个控制调试器生成的值。 alwaysOrSometimes 可以是以下值之一:

含义
ORPC_DEBUG_ALWAYS
0x00000000
如果设置,COM 将始终在接收方上引发客户端或服务器通知。
ORPC_DEBUG_IF_HOOK_ENABLED
0x00000001
如果设置,如果已通过调用该进程中的 DllDebugObjectRPCHook 来启用 COM 调试,且 fTrace 设置为 TRUE,则 COM 将仅在接收方上引发客户端或服务器通知。

verMajor

数据格式规范的主版本号。

verMinor

数据格式规范的次要版本号。

cbRemaining

此结构中遵循的字节数(包括 cbRemaining)。

guidSemantic

确定下面存在的工会成员的 GUID。 guidSemantic 可以采用以下值之一:

含义
9CADE560-8F43-101A-B07B-00DD01113F11
确定调试器是否要执行单步执行。 下面仅存在 工会的 fStopOnOtherSide 成员。
D62AEDFA-57EA-11ce-A964-00AA006C3706
确定是否将 RPC 封送的数据和调试操作码传递给接收方。 除 fStopOnOtherSide 外,工会的所有成员都位于下方。

fStopOnOtherSide

如果 为 TRUE,则单步执行由调试器执行,并且它应退出服务器,并在到达另一端后继续执行。 否则,不会执行单步执行,并且调试器执行将在另一端停止。

wDebuggingOpCode

一个 值,该值允许指定一系列操作之一。 wDebuggingOpCode 可以采用以下值之一:

含义
0x0000
无操作。
0x0001
如果设置为 TRUE,则单步语义与 fStopOnOtherSide 相同。

cExtent

填充。 请勿使用。

padding

填充。 请勿使用。

cb

rgbData 中数据的大小(以字节为单位)。

guidExtent

确定 rgbData 中数据类型的 GUIDguidExtent 可以采用以下值之一:

含义
53199051-57EB-11ce-A964-00AA006C3706
rgbData 是封送接口指针。

rgbData

用于在客户端和服务器调试器之间传递 RPC 封送 COM 数据的 BYTE 缓冲区。 rgbData 的内容由 guidExtent 中的 GUID 确定。

guidExtent 值 rgbData 内容
53199051-57EB-11ce-A964-00AA006C3706 由调用 CoMarshalInterface 产生的封送接口指针。 封送的指针使用 CoUnmarshalInterface 转换为其相应的接口指针。

备注

此结构的此成员具有 1 字节对齐方式,并且始终按 little-endian 字节顺序传输。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
不适用

请参阅

ORPC_DBG_ALL

ORPC_INIT_ARGS

DllDebugObjectRPCHook

IOrpcDebugNotify