Настройка реестра для выделения портов и выборочной привязки
Начиная с Windows 2000, для установки привязок следует использовать служебную программу в комплекте ресурсов Windows с именем Rpccfg.exe. Дополнительные сведения см. в пакете ресурсов Windows для соответствующей версии операционной системы.
Для версий Windows до Windows 2000 разделы реестра в следующей таблице указывают системные значения по умолчанию для динамического выделения портов и привязки к сетевым адаптерам на компьютерах с несколькими адресами. Сначала необходимо создать эти ключи, а затем указать соответствующие параметры.
Использование функции RpcServerUseProtseqEx влияет на эти параметры. Разработчики должны быть знакомы с параметрами реестра, описанными в этом разделе, и функцией RpcServerUseProtseqEx при управлении выделением портов. Пример с тремя гипотетическими приложениями следует таблице ниже и показывает, как эти параметры и функция RpcServerUseProtseqEx взаимодействуют.
Если ключ отсутствует или содержит недопустимое значение, вся конфигурация помечается как недопустимая, и все вызовы RpcServerUseProtseq*через ncacn_ip_tcp или ncadg_ip_udp завершатся ошибкой.
Примечание
Порты, выделенные для процесса, остаются выделенными до тех пор, пока этот процесс не будет замер. Если используются все доступные порты, функция возвращает RPC_S_OUT_OF_RESOURCES.
Ключ порта | Тип данных | Описание |
---|---|---|
|
REG_MULTI_SZ | Задает набор диапазонов IP-портов, состоящий из всех портов, доступных из Интернета, или всех портов, недоступных из Интернета. Каждая строка представляет один порт или инклюзивный набор портов (например, 1000–1050, 1984). Если какие-либо записи находятся за пределами диапазона от 0 до 65535 или если какая-либо строка не может быть интерпретирована, время выполнения RPC будет считать всю конфигурацию недопустимой. |
|
REG_SZ | Y или N (без учета регистра). Если задано значение Y, то все порты, перечисленные в разделе Порты, являются доступными в Интернете портами на этом компьютере. Если значение N, то в разделе Порты перечислены все порты, которые недоступны в Интернете. |
|
REG_SZ | Y или N (без учета регистра). Указывает системную политику по умолчанию. Если значение Y, процессам, использующим значение по умолчанию, будут назначены порты из набора доступных в Интернете портов, как определено выше. Если значение N, процессам, использующим значение по умолчанию, будут назначены порты из набора портов, доступных только в интрасети. |
|
REG_MULTI_SZ | Список имен устройств всех сетевых адаптеров, к которым требуется выполнить привязку по умолчанию (например, \Device\AMDPCN1). Если ключ не существует, сервер привязывается ко всем сетевым адаптерам. Если ключ существует, сервер привязывается к сетевым адаптерам, указанным в ключе, если для поля NICFlags не задано значение RPC_C_BIND_TO_ALL_NICS. Если ключ имеет значение NULL (""), конфигурация будет помечена как недопустимая и все вызовы RpcServerUseProtseq*через ncacn_ip_tcp или ncadg_ip_udp завершатся ошибкой. |
В следующей таблице показано, как параметры, определенные в предыдущей таблице, влияют на три примера приложений, а также как влияют на параметры, применяемые с помощью функции RpcServerUseProtseqEx .
В этом примере рассматриваются три гипотетических приложения:
- InternetApp. Это приложение предназначено для доступа к Интернету и указало RPC_C_USE_INTERNET_PORT в элементе EndpointFlagsструктуры RPC_POLICY , переданной в функцию RpcServerUseProtseqEx .
- LocalApp. Это приложение не предназначено для доступа к Интернету и указало RPC_C_USE_INTRANET_PORT в элементе EndpointFlagsструктуры RPC_POLICY , переданной функции RpcServerUseProtseqEx .
- DefaultApp: это приложение указывает ноль в элементе EndpointFlagsструктуры RPC_POLICY , передаваемой функции RpcServerUseProtseqEx .
В следующей таблице объясняется влияние этих параметров на основе значений, указанных в записях реестра, описанных в предыдущей таблице. В целях форматирования назначаются следующие коды:
PIA = PortsInternetAvailable Key value
UIP = Значение ключа UseInternetPorts
Для этого примера значение ключа Ports равно 5000–5100 для каждой записи.
Приложение | основная сборка взаимодействия | UIP | Результат |
---|---|---|---|
InternetApp | Да | Да | Использует порты от 5000 до 5100 |
LocalApp | Да | Да | Использует порт за пределами диапазона 5000–5100 |
DefaultApp | Да | Да | Использует порты от 5000 до 5100 |
InternetApp | Да | N | Использует порты от 5000 до 5100 |
LocalApp | Да | N | Использует порт за пределами диапазона 5000–5100 |
DefaultApp | Да | N | Использует порт за пределами диапазона 5000–5100 |
InternetApp | Нет | Да | Использует порт за пределами диапазона 5000–5100 |
LocalApp | N | Да | Использует порты от 5000 до 5100 |
DefaultApp | N | Да | Использует порт за пределами диапазона 5000–5100 |
InternetApp | N | Нет | Использует порт за пределами диапазона 5000–5100 |
LocalApp | Нет | Нет | Использует порты от 5000 до 5100 |
DefaultApp | Нет | Нет | Использует порты от 5000 до 5100 |
Связанные темы