次の方法で共有


SAN に不要な Windows ソケット SPI 関数

このセクションでは、SAN サービス プロバイダーが実装する必要がない Windows ソケット SPI 関数について説明します。 これらの関数は、Ws2spi.h で定義されています。

WSPAddressToString
Windows ソケット スイッチは、TCP/IP プロバイダーを使用して、SOCKADDR 構造体のすべてのコンポーネントを、ソケットの IP アドレスを表す、人間が判読できる数値文字列に変換します。

WSPAsyncSelect
Windows ソケット スイッチは、セッション プロトコルを内部的に使用して、必要に応じてソケットのネットワーク イベントの通知を処理します。

WSPCancelBlockingCall
Windows ソケット スイッチは、進行中の要求のブロックの取り消しを内部的に処理します。 そのため、SAN サービス プロバイダー DLL へのブロック取り消しの呼び出しは発生しません。 Windows ソケット スイッチは、次のいずれかを実行できます。

SAN ソケットを閉じて、未処理の接続要求を取り消します。 SAN サービス プロバイダー DLL は、接続要求を中止する必要があります。

未処理の送信要求と受信要求を取り消すには、それらの要求のデータをスイッチが内部的にバッファーしている場合は、そのデータを破棄します。要求がアプリケーション バッファーとの間の RDMA 転送である場合は、それらの要求が完了するのを待ちます。 RDMA 転送の時間が長い場合、スイッチは接続を完全に閉じる可能性があります。

Microsoft Windows SDK の Windows ソケット SPI ドキュメントでは、ブロック呼び出しが取り消された場合、アプリケーションは保持されていた接続に依存できないことが警告されています。 この場合、ブロック要求の取り消し後にソケットで成功することが保証される唯一の呼び出しは WSPCloseSocket です。

WSPGetPeerName Windows ソケット スイッチは、スイッチが WSPConnect 呼び出しでピアへの接続を確立するとき、または WSPAccept 呼び出しでピアへの接続を受け入れるときに、ピアの IP アドレスをキャッシュします。 スイッチは、必要に応じて、このキャッシュされた値をアプリケーションに提供します。

WSPGetSockName Windows ソケット スイッチは、WSPBind 呼び出しでアドレスをソケットに関連付けるとき、または WSPAccept 呼び出しでピアへの接続を受け入れるときに、ソケットのローカル IP アドレスをキャッシュします。 スイッチは、必要に応じて、このキャッシュされた値をアプリケーションに提供します。

WSPJoinLeaf Windows ソケット スイッチは、TCP/IP プロバイダーのみを使用してマルチポイント セッションを処理します。

WSPRecvDisconnect Windows ソケット スイッチは、ソケット上のデータ受信の終了を内部的に処理し、リモート パーティから受信切断データを取得します。

WSPRecvFrom 現在のバージョンの Windows ソケット ダイレクトでは、ユーザー データグラム プロトコル (UDP) セマンティクスでデータグラムを受信するソケットを処理する SAN サービス プロバイダーはサポートされていません。 したがって、Windows ソケット スイッチは、接続されているソケットで SAN サービス プロバイダーの WSPRecv 関数を呼び出して、伝送制御プロトコル (TCP) セマンティクスでストリーム データを受信します。

WSPSelect Windows ソケット スイッチは、必要に応じて、TCP/IP プロバイダーと連携してセッション プロトコルを内部的に使用して、ソケットの状態を判断します。

WSPSendDisconnect Windows ソケット スイッチは、ソケットの接続の終了を内部的に処理し、切断データをリモート パーティに送信します。

WSPSendTo 現在のバージョンの Windows ソケット ダイレクトでは、ユーザー データグラム プロトコル (UDP) セマンティクスでデータグラムを送信するソケットを処理する SAN サービス プロバイダーはサポートされていません。 したがって、Windows ソケット スイッチは、接続されているソケットで SAN サービス プロバイダーの WSPSend 関数を呼び出して、伝送制御プロトコル (TCP) セマンティクスでストリーム データを送信します。

WSPShutdown Windows ソケット スイッチは、ソケット上のデータの受信と送信を内部的に無効にします。

WSPStartup Windows ソケット スイッチは、SAN サービス プロバイダーの操作を開始するために WSPStartup を呼び出しません。 代わりに、スイッチは SAN サービス プロバイダーの WSPStatupEx 関数を使用します。

WSPStringToAddress Windows ソケット スイッチは、TCP/IP プロバイダーを使用して、ソケットの IP アドレスを表す、人間が判読できる数値文字列を、ソケット アドレス構造体 (SOCKADDR) に変換します。これは、このような構造体を受け取る Windows ソケット ルーチンに渡すのに適しているためです。