routproc
routproc 函数是一个示例路由过程。 它必须作为应用程序的一部分提供。 它由动态访问模块 (DMOD) 调用,其中包含一条消息,该消息可能针对此应用程序,也可能不适用于此应用程序。DMOD 依次调用路由过程,直到有人接受该消息。
语法
DWORD routproc(
BUFHDR *msgptr,
USHORT locl,
USHORT retstat
);
参数
msgptr
指向 DMOD 传递到路由过程的消息的指针。
locl
如果 retstat 指示) 返回的消息,则从中接收消息的位置 (;如果 retstat 指示路径错误) ,则 (路径丢失的位置。
retstat
调用原因:
CEDINMSG (1) — 返回的消息。
CEDINLLN (2) — 路径错误 (请参阅) 下面的说明。
返回值
TRUE
路由过程已接受消息。
FALSE
此消息不适用于此路由过程。
注解
路由过程应首先调用 sbpurcvx,用于处理任何 Open 响应消息,如下所示:
sbpurcvx (&msgptr、 locl、 retstat)
sbpurcvx 的返回代码 TRUE 表示 sbpurcvx 已接受消息;已收到此应用程序的“打开”错误响应,并且资源位置仍在继续。 路由过程不应进一步处理消息,应返回 TRUE 以防止 DMOD 调用进一步的路由过程。
sbpurcvx 返回的 FALSE 代码指示路由过程应:
如果消息用于此应用程序,请对消息负责并返回 TRUE ,以防止 DMOD 调用进一步的路由过程。
如果消息不适用于此应用程序,请返回 FALSE ,以便 DMOD 尝试进一步的路由过程。
如果返回路径错误, 则 msgptr 不会指向有效消息,并且不会为指示的位置值返回更多的函数管理接口 (FMI) 消息。 应用程序负责使用此位置结束所有会话。 路由过程必须返回 FALSE。 这可确保将丢失位置报告给所有其他路由过程。
如果消息针对此应用程序,则路由过程可以立即处理消息或将消息放入应用程序队列,然后使用信号量发布应用程序。 有关详细信息,请参阅 接收消息。