RpcBindingInqOption

RPC client processes use RpcBindingInqOption to determine current values of the binding options that are specific to the ncadg_mq message-queuing transport. This function is supported only on Windows NT, version 4.0 with Service Pack 3. Support for Windows 95 will be available with a forthcoming version of DCOM 95.

#include <rpc.h>
RPC_STATUS RPC_ENTRY RpcBindingInqOption(
  RPC_BINDING_HANDLE  hBinding,  
  unsigned long  Option,         
  unsigned long * pOptionValue   
);
 

Parameters

hBinding
The server binding about which to determine binding-option values.
Option
The binding handle property to inquire about (see table in the Remarks section).
pOptionValue
The memory location to place the value for the specified Option (see table in the Remarks section).

Return Values

Value Meaning
RPC_S_OK Success.
RPC_S_CANNOT_SUPPORT The function is not supported for either the operating system or the transport. Note that calling RpcBindingInqOption on binding handles that use any protocol sequence other than ncadg_mq will fail and return this value.

Remarks

When you use the Microsoft Message Queue Server (MSMQ)as the transport mechanism for your RPC application, and you use asynchronous message calls, the client process can control certain binding-specific options that affect queue operation.

Client processes call RpcBindingInqOption to determine the current settings of the message options. To inquire about authentication settings, the client must call RpcBindingInqAuthClient. The following table describes the message options and their possible values.

Option OptionValue Description
RPC_C_OPT_MQ
_DELIVERY
RPC_C_MQ_EXPRESS (The default value.) Remote calls to the server remain in active memory as they pass through the network.
RPC_C_MQ
_RECOVERABLE
Remote calls to the server are stored on disk until they are delivered and executed. This guarantees delivery even if the server goes down.
RPC_C_OPT_MQ
_PRIORITY
0-7 (The default is 3.) Calls with a higher priority number have precedence over calls with a lower priority number.
RPC_C_OPT_MQ
_JOURNAL
RPC_MQ_JOURNAL
_NONE (The default value.)
Calls are never logged
RPC_C_MQ_JOURNAL
_DEADLETTER
Calls are logged only when the message cannot be delivered. This can occur when the time specified in RPC_C_MQ_TIME_TO_
REACH_QUEUE or RPC_C_MQ_TIME_TO_BE_
RECEIVED expires before the message is delivered to the server, or the target queue no longer (of the server) no longer exists.
RPC_MQ_JOURNAL
_ALWAYS
Calls are always logged at the originating machine.
RPC_C_OPT_MQ
_ACKNOWLEDGE
FALSE (The default value.) Control returns to the client process immediately after the MSMQ transport receives the call.
TRUE The remote call blocks until it receives an acknowledgment that the call reached the server's receive queue.
RPC_C_OPT_MQ
_TIME_TO_REACH
_QUEUE
Time in seconds. The default value is INFINITE. The amount of time allowed for a call to reach the Queue Manager on the target system. If the call times out before reaching the target system, it is discarded.
RPC_C_OPT_MQ
_TIME_TO_
BE_RECEIVED
Time in seconds. The default value is INFINITE. The amount of time allowed for a call to reach the server-process receive queue on the target system. If the call times out before the RPC server application receives it, it is discarded.

See Also

RpcBindingSetOption, RpcBindingInqOption, RpcBindingSetAuthInfo, RpcBindingInqAuthClient, message, RPC Message Queuing