次の方法で共有


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**

この NSPv2 プロバイダーの NSPv2Startup 関数へのポインター。

NSPv2Cleanup

種類: LPNSPV2CLEANUP

この NSPv2 プロバイダーの NSPv2Cleanup 関数へのポインター。

NSPv2LookupServiceBegin

種類: LPNSPV2LOOKUPSERVICEBEGIN

この NSPv2 プロバイダーの NSPv2LookupServiceBegin 関数へのポインター。

NSPv2LookupServiceNextEx

種類: LPNSPV2LOOKUPSERVICENEXTEX

この NSPv2 プロバイダーの NSPv2LookupServiceNextEx 関数へのポインター。

NSPv2LookupServiceEnd

種類: LPNSPV2LOOKUPSERVICEEND

この NSPv2 プロバイダーの NSPv2LookupServiceEnd 関数へのポインター。

NSPv2SetServiceEx

種類: LPNSPV2SETSERVICEEX

この NSPv2 プロバイダーの NSPv2SetServiceEx 関数へのポインター。

NSPv2ClientSessionRundown

種類: LPNSPV2CLIENTSESSIONRUNDOWN

この NSPv2 プロバイダーの NSPv2ClientSessionRundown 関数へのポインター。

注釈

NSPV2_ROUTINE構造体は、Windows Vista 以降で使用できる名前空間サービス プロバイダー バージョン 2 (NSPv2) アーキテクチャの一部として使用されます。

Windows Vista および Windows Server 2008 では、 NSPV2_ROUTINE 構造体は、NS_EMAIL名前空間プロバイダーでの操作にのみ使用できます。

WSAAdvertiseProvider 関数は、クライアントが検索できるように NSPv2 プロバイダーのインスタンスをアドバタイズします。 WSAAdvertiseProvider 呼び出し元は、プロバイダーでサポートされている NSPv2 エントリ ポイントを使用して、pNSPv2Routine パラメーターのNSPV2_ROUTINE構造体へのポインターを渡します。

次の関数を実装するには、NSPv2 プロバイダーが必要です。

NSPv2LookupServiceBegin

- NSPv2LookupServiceNextEx

- NSPv2LookupServiceEnd

NSPv2 プロバイダーの要件に応じて、他のすべての関数は省略可能です。

関数が実装されていない場合、その関数の呼び出しは 、WSAEOPNOTSUPP を返すスタブ関数によってインターセプトされる必要があります。 NSPV2_ROUTINE構造体内の実装されていない関数への NSPv2 関数ポインターは、スタブ関数を指している必要があります。

一般に、NSPv2 プロバイダーは、呼び出し元のアプリケーション以外のプロセスに実装されます。 NSPv2 プロバイダーは、クライアント アクティビティの結果としてアクティブ化されません。 各プロバイダー ホスティング アプリケーションは、 WSAAdvertiseProvider 関数と WSAUnadvertiseProvider 関数を呼び出すことによって、特定のプロバイダーを使用できるようにするタイミングと使用不可にするタイミング 決定します。 クライアント アクティビティは、使用可能な場合 (名前空間プロバイダーがアドバタイズされている場合) にプロバイダーに接続しようとします。

プロセスでは、複数のプロバイダーを同時に実装およびアドバタイズできます。 Windows ソケットは、正しいものへの呼び出しをディスパッチすることによって名前空間プロバイダーを管理します。 また、RPC インターフェイスの詳細が非表示になり、プロセス間の呼び出しがインプロセス呼び出しに変換されます。 そのため、NSPv2 プロバイダーは、NSPv1 プロバイダーで使用される NSP_ROUTINE 構造と同様のエントリ ポイント関数のテーブルを実装するだけで済みます。 NSPv2 プロバイダーは、RPC 固有の要件 (データ マーシャリングやシリアル化など) について心配する必要はありません。

WSAUnadvertiseProvider 関数を使用すると、特定の名前空間プロバイダーがクライアントで使用できなくなります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header ws2spi.h

こちらもご覧ください

NSP_ROUTINE

NSPv2Cleanup

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

NSPv2Startup

WSAAdvertiseProvider

WSAProviderCompleteAsyncCall

WSAQUERYSET2

WSAUnadvertiseProvider