Функция RpcServerUseAllProtseqsIfEx (rpcdce.h)
Функция RpcServerUseAllProtseqsIfEx сообщает библиотеке времени выполнения RPC использовать все указанные последовательности протоколов и конечные точки в спецификации интерфейса для получения удаленных вызовов процедур.
Синтаксис
RPC_STATUS RpcServerUseAllProtseqsIfEx(
unsigned int MaxCalls,
RPC_IF_HANDLE IfSpec,
void *SecurityDescriptor,
PRPC_POLICY Policy
);
Параметры
MaxCalls
Длина очереди невыполненной работы для последовательности протокола ncacn_ip_tcp . Все остальные последовательности протоколов игнорируют этот параметр. Используйте RPC_C_PROTSEQ_MAX_REQS_DEFAULT, чтобы указать значение по умолчанию. См. заметки.
IfSpec
Интерфейс, содержащий последовательности протоколов и соответствующие сведения о конечной точке для использования при создании дескрипторов привязки.
SecurityDescriptor
Указатель на необязательный параметр, предоставленный для подсистемы безопасности. Используется только для последовательностей протоколов ncacn_np и ncalrpc . Все остальные последовательности протоколов игнорируют этот параметр. Использование дескриптора безопасности в конечной точке для обеспечения безопасности сервера не рекомендуется. Этот параметр не отображается в спецификации DCE для этого API.
Policy
Указатель на структуру RPC_POLICY , которая содержит флаги, ограничивающие выделение портов для динамических портов и разрешающие многосетевым компьютерам выборочную привязку к сетевым картам.
Возвращаемое значение
Значение | Значение |
---|---|
|
Вызов выполнен успешно. |
|
Нет поддерживаемых последовательностей протоколов. |
|
Формат конечной точки. |
|
Системе не хватает памяти. |
|
Конечная точка является дубликатом. |
|
Недопустимый дескриптор безопасности. |
|
Недопустимая последовательность протокола RPC. |
Комментарии
Установка нулевого значения поля NICFlagsструктуры RPC_POLICY делает эту расширенную функцию функционально эквивалентной исходному объекту RpcServerUseAllProtseqsIfEx, и сервер будет выполнять привязку к сетевым адаптерам на основе параметров системного реестра. Сведения о том, как параметры реестра определяют доступные порты Интернета и интрасети, см. в разделе Настройка реестра для выделения портов и выборочной привязки.
Чтобы получать запросы на удаленные вызовы процедур, сервер должен зарегистрировать по крайней мере одну последовательность протоколов в библиотеке времени выполнения RPC. Для каждой последовательности протокола, зарегистрированной сервером, библиотека времени выполнения RPC создает одну или несколько конечных точек, через которые сервер получает запросы на удаленные вызовы процедур. Библиотека времени выполнения RPC создает разные конечные точки для каждой последовательности протокола.
Приложения должны быть осторожны, чтобы передать разумные значения в MaxCalls. Большие значения на сервере, расширенном сервере или сервере центра обработки данных могут привести к использованию большого объема памяти нестраничного пула. Использование слишком малого значения также является неблагоприятным, так как это может привести к тому, что пакеты TCP SYN будут удовлетворены TCP RST с сервера, если очередь невыполненной работы будет исчерпана. Разработчик приложения должен сбалансировать объем памяти и требования к масштабируемости при определении правильного значения maxCalls.
Если компьютер настроен для использования выборочной привязки, успешное возвращение не гарантирует, что сервер создал конечные точки для всех сетевых интерфейсов, присутствующих на компьютере. Время выполнения RPC может не прослушивать некоторые сетевые интерфейсы в зависимости от параметров выборочной привязки. Кроме того, если интерфейс еще не получил IP-адрес с помощью DHCP, сервер RPC не будет прослушивать сетевой интерфейс, пока ему не будет назначен DHCP-адрес. Успешное возвращение подразумевает, что сервер прослушивает по крайней мере один сетевой интерфейс; Полный список дескрипторов привязки, по которым можно получить вызовы удаленных процедур, можно получить с помощью вызова функции RpcServerInqBindings .
Чтобы зарегистрировать выбранные последовательности протокола, указанные в IDL-файле, сервер вызывает RpcServerUseProtseqIfEx. Дополнительные сведения см. в разделе Привязка на стороне сервера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | rpcdce.h (включая Rpc.h) |
Библиотека | Rpcrt4.lib |
DLL | Rpcrt4.dll |