LPNSPV2CLEANUP コールバック関数 (ws2spi.h)
NSPv2Cleanup 関数は、クライアント セッションが終了したことを名前空間サービス プロバイダー バージョン 2 (NSPv2) プロバイダーに通知します。
構文
LPNSPV2CLEANUP Lpnspv2cleanup;
INT Lpnspv2cleanup(
[in] LPGUID lpProviderId,
[in] LPVOID pvClientSessionArg
)
{...}
パラメーター
[in] lpProviderId
通知する名前空間プロバイダーの GUID へのポインター。
[in] pvClientSessionArg
クライアント セッションへのポインター。
戻り値
ルーチンが成功した場合、関数は NO_ERROR (ゼロ) を返す必要があります。 ルーチン が 失敗し、 WSASetLastError を使用して適切なエラー コードを設定する必要がある場合は、SOCKET_ERROR (つまり 1) を返す必要があります。
エラー コード | 意味 |
---|---|
この操作を実行するのに十分なメモリがありません。 | |
呼び出し元ルーチンには、サービスを初期化するための十分な特権がありません。 | |
このプロバイダーに対して、1 つ以上のパラメーターが無効または欠落しています。 | |
この操作はサポートされていません。 名前空間プロバイダーがこの関数を実装していない場合、このエラーが返されます。 | |
サービスが不明です。 指定した名前空間にサービスが見つかりません。 |
解説
NSPv2Cleanup 関数は、Windows Vista 以降で使用できる名前空間サービス プロバイダー バージョン 2 (NSPv2) アーキテクチャの一部として使用されます。
Windows Vista および Windows Server 2008 では、 NSPv2Cleanup 関数は名前空間プロバイダー NS_EMAIL操作にのみ使用できます。
NSPv2Startup 関数は、名前空間プロバイダーを使用して新しいクライアント プロセスが開始されるたびに呼び出されます。 プロバイダーは、 ppvClientSessionArg パラメーターが指すクライアント セッション引数を使用して、このセッションに関する情報を格納できます。 NSPv2Startup 関数の呼び出しでクライアント セッション引数に値が指定されている場合、この同じクライアント セッション引数を pvClientSessionArg パラメーターで NSPv2Cleanup 関数に渡して、クライアント セッションが終了したことを名前空間プロバイダーに通知できます。
NSPv2Cleanup 関数は、Windows Sockets 名前空間サービス プロバイダーを使用してアプリケーションが終了すると呼び出されます。 NSPv2Cleanup を使用すると、名前空間プロバイダーは、クライアント セッションに割り当てられた名前空間プロバイダー リソースを解放できます。
NSPv2Cleanup 関数を呼び出す前に、NSPv2Startup 関数を正常に呼び出す必要があります。 複数の NSPv2Startup 呼び出しを行うことができます。 ただし、 NSPv2Startup 呼び出しごとに、対応する NSPv2Cleanup 呼び出しも発行する必要があります。 実際のクリーンアップは、サービス プロバイダーの最終的な NSPv2Cleanup だけです。前の 呼び出しでは、サービス プロバイダー内の内部参照カウントがデクリメントされます。
NSPv2Startup、NSPv2ClientSessionRundown、および NSPv2Cleanup 関数は、NSPv2 プロバイダーの要件に応じてオプションです。
NSPv2Cleanup 関数が実装されていない場合、その関数の呼び出しは、WSAEOPNOTSUPP を返すスタブ関数によってインターセプトされる必要があります。 NSPV2_ROUTINE構造体の実装されていない NSPv2Cleanup 関数への NSPv2 関数ポインターは、スタブ関数を指している必要があります。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ws2spi.h |