Función RpcServerUseProtseqExA (rpcdce.h)
La función rpcServerUseProtseqEx
Sintaxis
RPC_STATUS RpcServerUseProtseqExA(
RPC_CSTR Protseq,
unsigned int MaxCalls,
void *SecurityDescriptor,
PRPC_POLICY Policy
);
Parámetros
Protseq
Puntero a un identificador de cadena de la secuencia de protocolos para registrarse con la biblioteca en tiempo de ejecución rpc.
MaxCalls
Longitud de la cola de trabajos pendientes para la secuencia del protocolo ncacn_ip_tcp. Todas las demás secuencias de protocolo omiten este parámetro. Use RPC_C_PROTSEQ_MAX_REQS_DEFAULT para especificar el valor predeterminado. Vea comentarios.
SecurityDescriptor
Puntero a un parámetro opcional proporcionado para el subsistema de seguridad windows XP/2000/NT. Solo se usa para secuencias de protocolo de ncacn_np y ncalrpc. Todas las demás secuencias de protocolo omiten este parámetro. No se recomienda usar un descriptor de seguridad en el punto de conexión para proteger un servidor. Este parámetro no aparece en la especificación DCE de esta API.
Policy
Puntero a la estructura de RPC_POLICY, que contiene marcas para restringir la asignación de puertos para puertos dinámicos y permitir que los equipos de host múltiple se enlacen selectivamente a tarjetas de interfaz de red. La estructura RPC_POLICY permite al autor de la llamada dirigir la biblioteca en tiempo de ejecución de RPC para usar un puerto de intranet o un puerto de Internet, entre otras opciones.
Valor devuelto
Valor | Significado |
---|---|
|
La llamada se realizó correctamente. |
|
La secuencia de protocolos no se admite en este host. |
|
Secuencia de protocolo. |
|
El sistema no tiene memoria. |
|
El descriptor de seguridad no es válido. |
Observaciones
Los parámetros y efectos de RpcServerUseProtseqEx subsume los de RpcServerUseProtseq. La diferencia es el campo directiva de
Al establecer el campo NICFlags de la estructura de RPC_POLICY en cero, esta función extendida es funcionalmente equivalente al RpcServerUseProtseq originaly el servidor se enlazará a NIC en función de la configuración del registro del sistema. Para obtener información, consulte Configuración del Registro para asignaciones de puertos y enlace selectivo.
Para cada secuencia de protocolo registrada por un servidor, la biblioteca en tiempo de ejecución rpc crea uno o varios puntos de conexión a través de los cuales el servidor recibe solicitudes de llamada a procedimientos remotos. La biblioteca en tiempo de ejecución de RPC crea puntos de conexión diferentes para cada secuencia de protocolo. El nombre del punto de conexión lo genera el tiempo de ejecución rpc o el sistema operativo. Por ejemplo, para ncacn_ip_tcp, el número de puerto viene determinado dinámicamente por el tiempo de ejecución de RPC, en función de la disponibilidad y la configuración del Registro.
Para MaxCalls, el valor proporcionado por la aplicación es solo una sugerencia. El tiempo de ejecución de RPC o el proveedor de Windows Sockets pueden invalidar el valor. Por ejemplo, en Windows XP o Windows 2000 Professional, el valor está limitado a 5. Los valores mayores que 5 se omiten y se usan 5 en su lugar. En Windows Server 2003 y Windows 2000 Server, se respetará el valor.
Las aplicaciones deben tener cuidado de pasar valores razonables en MaxCalls. Los valores grandes de Server, Advanced Server o Datacenter Server pueden provocar que se use una gran cantidad de memoria de grupo no paginada. El uso de un valor demasiado pequeño también es desfavorable, ya que puede dar lugar a que el RST TCP cumpla los paquetes TCP SYN desde el servidor si se agota la cola de trabajos pendientes. Un desarrollador de aplicaciones debe equilibrar la superficie de memoria frente a los requisitos de escalabilidad al determinar el valor adecuado para MaxCalls.
Cuando el equipo está configurado para usar el enlace selectivo, la devolución correcta no garantiza que el servidor haya creado puntos de conexión para todas las interfaces de red presentes en el equipo. Es posible que el tiempo de ejecución de RPC no escuche en algunas interfaces de red en función de la configuración de enlace selectivo. Además, si una interfaz aún no ha recibido una dirección IP mediante DHCP, el servidor RPC no escucha en la interfaz de red hasta que se le asigna una dirección DHCP. Una devolución correcta implica que el servidor está escuchando en al menos una interfaz de red; La lista completa de los identificadores de enlace sobre los que se pueden recibir llamadas a procedimientos remotos se puede obtener con una llamada a la función RpcServerInqBindings.
Para registrar todas las secuencias de protocolo, un servidor llama a rutina RpcServerUseAllProtseqsEx.
Para obtener más información, vea Server-Side Enlace.
Nota
El encabezado rpcdce.h define RpcServerUseProtseqEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
rpcdce.h (include Rpc.h) |
biblioteca de |
Rpcrt4.lib |
DLL de |
Rpcrt4.dll |