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**
この 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 プロバイダーが必要です。
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 |