Функции, используемые в следующей программе:
Параметры:
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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.