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