структура NSPV2_ROUTINE (ws2spi.h)
Структура NSPV2_ROUTINE содержит сведения о функциях, реализованных поставщиком службы пространства имен версии 2 (NSPv2).
Синтаксис
typedef struct _NSPV2_ROUTINE {
DWORD cbSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
LPNSPV2STARTUP NSPv2Startup;
LPNSPV2CLEANUP NSPv2Cleanup;
LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin;
LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx;
LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd;
LPNSPV2SETSERVICEEX NSPv2SetServiceEx;
LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
} NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE;
Члены
cbSize
Тип: DWORD
Размер структуры (в байтах).
dwMajorVersion
Тип: DWORD
Основная версия спецификации поставщика услуг, поддерживаемая этим поставщиком.
dwMinorVersion
Тип: DWORD
Дополнительная версия спецификации поставщика услуг, поддерживаемая этим поставщиком.
NSPv2Startup
Тип: ** LPNSPV2STARTUP**
Указатель на функцию NSPv2Startup для этого поставщика NSPv2.
NSPv2Cleanup
Тип: LPNSPV2CLEANUP
Указатель на функцию NSPv2Cleanup для этого поставщика NSPv2.
NSPv2LookupServiceBegin
Тип: LPNSPV2LOOKUPSERVICEBEGIN
Указатель на функцию NSPv2LookupServiceBegin для этого поставщика NSPv2.
NSPv2LookupServiceNextEx
Тип: LPNSPV2LOOKUPSERVICENEXTEX
Указатель на функцию NSPv2LookupServiceNextEx для этого поставщика NSPv2.
NSPv2LookupServiceEnd
Тип: LPNSPV2LOOKUPSERVICEEND
Указатель на функцию NSPv2LookupServiceEnd для этого поставщика NSPv2.
NSPv2SetServiceEx
Тип: LPNSPV2SETSERVICEEX
Указатель на функцию NSPv2SetServiceEx для этого поставщика NSPv2.
NSPv2ClientSessionRundown
Тип: LPNSPV2CLIENTSESSIONRUNDOWN
Указатель на функцию NSPv2ClientSessionRundown для этого поставщика NSPv2.
Комментарии
Структура NSPV2_ROUTINE используется как часть архитектуры поставщика служб пространства имен версии 2 (NSPv2), доступной в Windows Vista и более поздних версиях.
В Windows Vista и Windows Server 2008 структуру NSPV2_ROUTINE можно использовать только для операций с поставщиками NS_EMAIL пространств имен.
Функция WSAAdvertiseProvider объявляет экземпляр поставщика NSPv2 для поиска клиентами. Вызывающий объект WSAAdvertiseProvider передает указатель на структуру NSPV2_ROUTINE в параметре pNSPv2Routine с точками входа NSPv2, поддерживаемыми поставщиком.
Поставщик NSPv2 необходим для реализации следующих функций:
Все остальные функции являются необязательными в зависимости от требований поставщика NSPv2.
Если функция не реализована, вызовы этой функции должны быть перехвачены функцией-заглушки, которая возвращает WSAEOPNOTSUPP. Указатель функции NSPv2 на нереализованную функцию в структуре NSPV2_ROUTINE должен указывать на функцию-заглушку.
Как правило, поставщики NSPv2 реализуются в процессах, отличных от вызывающих приложений. Поставщики NSPv2 не активируются в результате действий клиента. Каждое приложение для размещения поставщика решает, когда следует сделать конкретный поставщик доступным или недоступным, вызывая функции WSAAdvertiseProvider и WSAUnadvertiseProvider . Действие клиента приводит к попыткам связаться с поставщиком только в том случае, если он доступен (при объявлении поставщика пространства имен).
Процесс может одновременно реализовывать и объявлять несколько поставщиков. Сокеты Windows будут управлять поставщиками пространств имен, отправляя вызовы в правильный. Он также скрывает сведения об интерфейсе RPC и преобразует межпроцессные вызовы во внутрипроцессные вызовы. Таким образом, поставщик NSPv2 должен реализовать только таблицу функций точек входа, аналогичную структуре NSP_ROUTINE , используемой поставщиком NSPv1. ПоставщикУ NSPv2 не нужно беспокоиться о конкретных требованиях RPC (например, маршалирование и сериализация данных).
Функция WSAUnadvertiseProvider делает конкретный поставщик пространства имен недоступным для клиентов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | ws2spi.h |