Win32 API 日本語リファレンス
ホーム › Networking.WinSock › LPNSPV2STARTUP

LPNSPV2STARTUP

コールバック

シグネチャ

INT LPNSPV2STARTUP(
    GUID* lpProviderId,
    void** ppvClientSessionArg
);

パラメーター

フィールド型説明
lpProviderIdGUID*通知する対象となる特定のネームスペース プロバイダーの GUID へのポインター。
ppvClientSessionArgvoid**クライアント セッションへのポインター。

公式ドキュメント

NSPv2Startup 関数は、ネームスペース サービス プロバイダー バージョン 2 (NSPv2) プロバイダーに対して、新しいクライアント プロセスがプロバイダーの使用を開始することを通知します。

戻り値

ルーチンが成功した場合、この関数は NO_ERROR (ゼロ) を返します。ルーチンが失敗した場合は SOCKET_ERROR (すなわち 1) を返し、 WSASetLastError を使用して適切なエラー コードを設定する必要があります。

エラー コード 意味
WSA_NOT_ENOUGH_MEMORY
この操作を実行するために利用できるメモリが不足しています。
WSAEACCES
呼び出し元のルーチンに、サービスを初期化するための十分な特権がありません。
WSAEINVAL
このプロバイダーに対して、1 つ以上のパラメーターが無効であるか指定されていません。
WSAEOPNOTSUPP
この操作はサポートされていません。このエラーは、ネームスペース プロバイダーがこの関数を実装していない場合に返されます。
WSASERVICE_NOT_FOUND
サービスが不明です。指定されたネームスペース内にサービスが見つかりません。

解説(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 の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)