Поделиться через


структура NSPV2_ROUTINE (ws2spi.h)

Структура NSPV2_ROUTINE содержит сведения о функциях, реализованных поставщиком службы пространства имен версии 2 (NSPv2).

Примечание Структура файла заголовка Ws2spi.h содержит полные прототипы для всех указателей функций 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 необходим для реализации следующих функций:

NSPv2LookupServiceBegin

- NSPv2LookupServiceNextEx

- NSPv2LookupServiceEnd

Все остальные функции являются необязательными в зависимости от требований поставщика 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

См. также раздел

NSP_ROUTINE

NSPv2Cleanup

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

NSPv2Startup

WSAAdvertiseProvider

WSAProviderCompleteAsyncCall

WSAQUERYSET2

WSAUnadvertiseProvider