Именованные каналы для двунаправленного межпроцессного обмена нетипизированными данными между двумя Windows-машинами, страница 6

Функции, используемые в следующей программе:

Параметры:

MinimumCallThreads

Определяет минимальное количество вызывающих потоков.

MaxCalls

Определяет рекомендуемый максимум конкурирующих удалённых вызовов процедур, которые сервер в состоянии выполнить. Для достижения максимальной производительности рантайм библиотеки RPC интерпретируют MaxCalls скорее как предлагаемый предел, нежели чем абсолютное верхнее ограничение.

Чтобы воспользоваться значением по умолчанию, используйте RPC_C_LISTEN_MAX_CALLS_DEFAULT.

DontWait

Определяет флаг, управляющий выходом из RpcServerListen. Ненулевое значение символизирует моментальный выход из RpcServerListen по завершению выполнения функции. Нулевое значение означает, что RpcServerListen не должна возвращать управление до тех пор, пока не будет вызвана RpcMgmtStopServerListening и пока не завершится обработка всех удалённых вызовов.

Возвращаемые значения

Значение

Описание

RPC_S_OK

Успешно

RPC_S_ALREADY_LISTENING

Сервер уже ожидает

RPC_S_NO_PROTSEQS_REGISTERED

Зарегистрирована ошибочная последовательность

RPC_S_MAX_CALLS_TOO_SMALL

Слишком малое значение максимума вызовов

RpcServerUseProtseqEp

Функция RpcServerUseProtseqEp заставляет рантайм библиотеку RPC использовать определённый протокол последовательностей с определённой конечной точкой для получения удалённых вызовов.

Поддерживается обеими 32х разрядными платформами - Windows NT и Windows 95.

За списком протоколов поддерживаемых последовательностей Microsoft RPC обращайтесь к разделам String Binding, RPC Data Types and Structures.

#include <rpc.h>

RPC_STATUS RPC_ENTRY RpcServerUseProtseqEp(

  unsigned char *  Protseq,  

  unsigned int  MaxCalls,  

  unsigned char *  Endpoint,  

  void *  SecurityDescriptor 

);

Параметры

Protseq

Указатель на строку, которая идентифицирует протокол последовательности для регистрации в RPC рантайм библиотеке.

MaxCalls

Определяет максимум конкурирующих удалённых вызовов, которые сервер желает обработать.

Рантайм библиотека RPC гарантирует, что сервер сможет принять, по крайней мере, это количество конкурирующих запросов. Действительное число может быть больше – в зависимости от выбранной последовательности протокола.

Чтобы задать значение по умолчанию, используйте RPC_C_PROTSEQ_MAX_REQS_DEFAULT.

Endpoint

Указывает на адрес последовательности завершения в протоколе, определенной в аргументе Protse.

SecurityDescriptor

Указывает на дополнительный параметр, который передаётся подсистеме защиты в Microsoft Windows NT,. Заметьте, что данный параметр не фигурирует в спецификации DCE для данного API.

Возвращаемые значения

Значение

Смысл

RPC_S_OK

Успех

RPC_S_PROTSEQ_NOT_SUPPORTED

На данном сервере не поддерживается последовательность прокола

RPC_S_INVALID_RPC_PROTSEQ

Неверная последовательность протокола

RPC_S_INVALID_ENDPOINT_FORMAT

Неверный формат точки окончания

RPC_S_OUT_OF_MEMORY

За границами памяти

RPC_S_DUPLICATE_ENDPOINT

Точка окончания - есть дубликат

RPC_S_INVALID_SECURITY_DESC

Неверный дескриптор защиты

RpcServerRegisterIf

Функция RpcServerRegisterIf регистрирует интерфейс в рантайм библиотеке RPC.

Поддерживается обеими 32х разрядными платформами - Windows NT и Windows 95.

#include <rpc.h>

RPC_STATUS RPC_ENTRY RpcServerRegisterIf(

  RPC_IF_HANDLE  IfSpec,  

  UUID *  MgrTypeUuid,  

  RPC_MGR_EPV *  MgrEpv 

);

Параметры

IfSpec

Определяет структуру данных, сгенерированную MIDL, - интерфейс, который необходимо зарегистрировать.

MgrTypeUuid

Указывает на тип UUID, который будет связан с MgrEpv аргументом. Передача нулевого значения (или нулевого UUID) регистрирует IfSpec с нулевым типом UUID.

MgrEpv

Определяет вектор точки входа в обработчик менеджера (EPV). Чтобы использовать EPV, сгенерированный MIDL по умолчанию, передайте NULL.

RpcTryExcept

    {

    guarded statements

    }

RpcExcept(expression)

    {

    exception statements

}

RpcEndExcept;

guarded statements