LPNSPV2CLEANUP
コールバックシグネチャ
INT LPNSPV2CLEANUP(
GUID* lpProviderId,
void* pvClientSessionArg
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| lpProviderId | GUID* | 通知先となるネームスペースプロバイダーの GUID へのポインターです。 |
| pvClientSessionArg | void* | クライアントセッションへのポインターです。 |
公式ドキュメント
NSPv2Cleanup 関数は、ネームスペースサービスプロバイダーバージョン 2 (NSPv2) プロバイダーに、クライアントセッションが終了したことを通知します。
戻り値
ルーチンが成功した場合、この関数は NO_ERROR (ゼロ) を返します。ルーチンが失敗した場合は SOCKET_ERROR (つまり 1) を返し、 WSASetLastError を使用して適切なエラーコードを設定する必要があります。
| エラーコード | 意味 |
|---|---|
| この操作を実行するのに十分なメモリがありません。 | |
| 呼び出し元のルーチンには、サービスを初期化するための十分な特権がありません。 | |
| このプロバイダーに対して、1 つ以上のパラメーターが無効であるか、指定されていません。 | |
| この操作はサポートされていません。ネームスペースプロバイダーがこの関数を実装していない場合に、このエラーが返されます。 | |
| サービスが不明です。指定されたネームスペースでサービスが見つかりません。 |
解説(Remarks)
NSPv2Cleanup 関数は、Windows Vista 以降で利用できるネームスペースサービスプロバイダーバージョン 2 (NSPv2) アーキテクチャの一部として使用されます。
Windows Vista および Windows Server 2008 では、NSPv2Cleanup 関数は NS_EMAIL ネームスペースプロバイダーに対する操作にのみ使用できます。
NSPv2Startup 関数は、新しいクライアントプロセスがネームスペースプロバイダーの使用を開始するたびに呼び出されます。 プロバイダーは、ppvClientSessionArg パラメーターが指す クライアントセッション引数を使用して、このセッションに関する情報を格納できます。NSPv2Startup 関数の呼び出しでクライアントセッション引数に値が指定されていた場合、同じクライアントセッション引数を NSPv2Cleanup 関数の pvClientSessionArg パラメーターに渡すことで、クライアントセッションが終了したことをネームスペースプロバイダーに通知できます。
NSPv2Cleanup 関数は、アプリケーションが Windows Sockets ネームスペースサービスプロバイダーの使用を終了したときに呼び出されます。 NSPv2Cleanup により、ネームスペースプロバイダーは、そのクライアントセッションのために割り当てたリソースを解放できます。
NSPv2Startup 関数は、NSPv2Cleanup 関数を呼び出す前に成功している必要があります。NSPv2Startup は複数回呼び出してもかまいません。ただし、 NSPv2Startup の呼び出しごとに、対応する NSPv2Cleanup の呼び出しも発行する必要があります。実際のクリーンアップを行うのは、そのサービスプロバイダーに対する最後の NSPv2Cleanup のみであり、それ以前の呼び出しはサービスプロバイダー内部の参照カウントを減らします。
NSPv2Startup、 NSPv2ClientSessionRundown、および NSPv2Cleanup の各関数は省略可能であり、NSPv2 プロバイダーの要件に応じて実装します。
NSPv2Cleanup 関数を実装しない場合、この関数への呼び出しは WSAEOPNOTSUPP を返すスタブ関数で受け止める必要があります。 NSPV2_ROUTINE 構造体内にある、未実装の NSPv2Cleanup 関数を指す NSPv2 関数ポインターは、そのスタブ関数を指すようにします。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)