routproc

Routproc関数は、サンプルのルーティングプロシージャです。 アプリケーションの一部として指定する必要があります。 このアプリケーションでは、ダイナミックアクセスモジュール (DMOD) によって呼び出されます。このアプリケーションではメッセージが表示されますが、このアプリケーションでは使用できない可能性があります。また、このアプリケーションでは、メッセージを受け入れるまでルーティング手順が呼び出されます。

構文

  
DWORD routproc(   
BUFHDR *msgptr,   
USHORT locl,   
USHORT retstat   
);  

パラメーター

msgptr
DMOD によってルーティングプロシージャに渡されたメッセージへのポインター。

locl
メッセージが受信されたときの局所性 ( retstat がメッセージを返した場合)、またはパスが失われた場合 ( retstat がパスエラーを示している場合)。

retstat
呼び出しの理由:

CEDINMSG (1): メッセージが返されました。

CEDINLLN (2)-パスエラー (下記の「解説」を参照してください)。

戻り値

TRUE
ルーティングプロシージャがメッセージを受け入れました。

FALSE
このルーティングプロシージャのメッセージではありません。

注釈

ルーティングプロシージャは、次のように開いている応答メッセージを処理する sbpurcvxを最初に呼び出す必要があります。

sbpurcvx (&msgptr, locl, retstat)

Sbpurcvxから返される TRUE のリターンコードは、 sbpurcvxがメッセージを受け入れたことを示します。このアプリケーションのオープンエラー応答が受信されました。リソースの場所は続行されています。 ルーティングプロシージャは、それ以上メッセージを処理しないようにする必要があります。また、それ以降のルーティングプロシージャが DMOD から呼び出されないようにするには、 TRUE を返します。

SbpurcvxからのリターンコードFALSEは、ルーティングプロシージャが次のことを行う必要があることを示します。

  • メッセージがこのアプリケーションに対するものである場合は、メッセージを処理し、それ以降のルーティングプロシージャを DMOD が呼び出さないようにするために TRUE を返します。

  • メッセージがこのアプリケーション用ではない場合は FALSE を返します。これにより、DMOD がルーティングプロシージャを試行します。

    パスエラーが返された場合、 msgptr は有効なメッセージを指しておらず、示されている近傍値に対して、それ以上の関数 management interface (fmi) メッセージは返されません。 アプリケーションは、このような局所性を使用してすべてのセッションを終了します。 ルーティングプロシージャは FALSEを返す必要があります。 これにより、失われた局所性が、他のすべてのルーティングプロシージャに報告されます。

    メッセージがこのアプリケーションに対するものである場合、ルーティングプロシージャは、メッセージを直ちに処理するか、またはメッセージをアプリケーションキューに配置してから、セマフォを使用してアプリケーションを post することができます。 詳細については、「 メッセージの受信」を参照してください。