RpcServerUseAllProtseqsIfEx
The RpcServerUseAllProtseqsIfEx
function tells the RPC run-time library to use all the specified protocol
sequences and endpoints in the interface specification for receiving remote
procedure calls. For a list of Microsoft RPC s supported protocol sequences,
see the reference topic String Binding
This function
is supported only on Windows NT 4.0.
#include <rpc.h>
RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIfEx(
unsigned int MaxCalls, |
|
RPC_IF_HANDLE IfSpec, |
|
void *
SecurityDescriptor, |
|
PRPC_POLICY Policy |
|
); |
|
Parameters
MaxCalls
Specifies the
maximum number of concurrent remote procedure call requests the server can
accept.
The RPC
run-time library guarantees that the server can accept at least this number of
concurrent call requests. The actual number can be greater and can vary for
each protocol sequence. Use RPC_C_PROTSEQ_MAX_REQS_DEFAULT to specify the
default value.
IfSpec
Specifies the
interface containing the protocol sequences and corresponding endpoint
information to use in creating binding handles.
SecurityDescriptor
Points to an
optional parameter provided for the Microsoft Windows NT security subsystem.
Policy
Points to the
RPC_POLICY
Remarks
The parameters
and effects of RpcServerUseAllProtseqsIfEx subsume those of RpcServerUseAllProtseqsIf.
The difference is the Policy field, which allows you to restrict port
allocation for dynamic ports and allows multihomed machines to selectively bind
to network interface cards.
Setting the NICFlags
field of the RPC_POLICY structure to zero makes this extended function
functionally equivalent to the original RpcServerUseAllProtseqsIf, and
the server will bind to NICs based on the settings in the system registry. For
information on how the registry settings define the available Internet and
intranet ports, see Configuring the Windows NT Registry for Port Allocations
and Selective Binding
Note The flag
settings in the Policy field are effective only when the ncacn_ip_tcp
protocol sequence is in use. For all other protocol sequences, the RPC run time
ignores these values.
A server
application calls the RpcServerUseAllProtseqsIfEx routine to register
with the RPC run-time library all the protocol sequences and associated
endpoint-address information provided in the IDL file.
To receive
remote procedure call requests, a server must register at least one protocol
sequence with the RPC run-time library.
For each
protocol sequence registered by a server, the RPC run-time library creates one
or more binding handles through which the server receives remote procedure call
requests. The RPC run-time library creates different binding handles for each
protocol sequence.
The MaxCalls
argument allows the server to specify the maximum number of concurrent remote
procedure call requests the server wants to handle.
To register
selected protocol sequences specified in the IDL file, a server calls the RpcServerUseProtseqIfEx
routine.
Return Values
Value |
Meaning |
RPC_S_OK |
Success |
RPC_S_NO_PROTSEQS |
No
supported protocol sequences |
RPC_S_INVALID_ENDPOINT_FORMAT |
Invalid
endpoint format |
RPC_S_OUT_OF_MEMORY |
Out of
memory |
RPC_S_DUPLICATE_ENDPOINT |
Endpoint is
a duplicate |
RPC_S_INVALID_SECURITY_DESC |
Security
descriptor is invalid |
RPC_S_INVALID_RPC_PROTSEQ |
RPC
protocol sequence is invalid |
See Server
Application RPC API Calls
See Also