次の方法で共有


SAN サービス プロバイダーのインストール

SAN サービス プロバイダーは、通常、Windows ソケット スイッチとインターフェイスすることができる、基本 Windows ソケット サービス プロバイダーとしてインストールされます。 代わりに、SAN サービス プロバイダーをインストールしてアプリケーションで直接使用できますが、Windows ソケット ダイレクト テクノロジーでは、この方法での SAN サービス プロバイダーの使用はサポートされていません。 アプリケーションが直接使用するためにインストールされた SAN サービス・プロバイダーは、TCP/IP プロトコルの特性ではなく、ネイティブ アドレス ファミリーおよびプロトコル特性をエクスポートします。

Windows ソケット スイッチを介してアプリケーションに間接的に公開される SAN サービス プロバイダーは、SAN サービス プロバイダーの WSAPROTOCOL_INFOW 構造体の dwProviderFlags メンバーに PFL_HIDDEN フラグを設定する必要があります。 オペレーティング システムに SAN サービス プロバイダーをインストールするために、SAN サービス プロバイダーのインストール メカニズムは、WSCInstallProvider 関数の呼び出しでこの構造体を渡します。 SAN サービス プロバイダーのインストール メカニズムは、たとえば、SAN サービス プロバイダーによってエクスポートされ、INF ファイル ディレクティブによって呼び出されるセットアップ プログラムまたは関数にすることができます。

SAN サービス プロバイダーのインストール メカニズムは、SAN サービス プロバイダーが Windows ソケット スイッチによって基本 Windows ソケット サービス プロバイダーとして検出される前にレジストリ内の次のキーに REG_BINARY 型の値を追加する必要があります。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock\
Parameters\TCP on SAN

この値には、WSAPROTOCOL_INFOW構造体の ProviderId メンバーの値のバイナリ表現が含まれます。 この値は、SAN サービス プロバイダーを Windows ソケット スイッチに登録します。 このメンバーには、ベンダーが SAN サービス プロバイダーに割り当てたグローバル一意識別子 (GUID) が含まれています。

ベンダーは、この GUID を表す一意の名前を割り当てることもできます。

  • 製品の商標名

  • 一意の数値

  • GUID のテキスト表現

SANサービスプロバイダー登録方法

  1. スイッチは WSAProviderConfigChange 関数を呼び出して、Windows ソケット プロバイダーのインストールと削除のイベントを検出します。

  2. 新しい Windows ソケット サービス プロバイダーがインストールされると、スイッチは、WSCEnumProtocols 関数を呼び出して、レジストリ内の Windows ソケット カタログと SAN サービス プロバイダーの一覧を照会し、新しいサービス プロバイダーが SAN を制御しているかどうかを判断します。 WSCEnumProtocols の詳細については、Windows SDK を参照してください。

  3. スイッチは、新しい SAN サービス プロバイダーを検出すると、「SAN サービス プロバイダーの初期化」の説明に従って、そのサービス プロバイダーを初期化します。

  4. また、スイッチは、ワイルドカード IP アドレス (0.0.0.0) にバインドされた既存のリスニング ソケットにサービスを提供するように SAN サービス プロバイダーが初期化された後、新しくインストールされた SAN サービス プロバイダーの次の機能を呼び出します (ワイルドカード IP アドレスは、SAN サービス プロバイダーが制御するすべての NIC からの着信接続要求を受け入れる必要があることを意味します)。

    WSPSocket
    ソケットの作成

    WSPBind
    ソケットをワイルドカード IP アドレスにバインドします

    WSPListen
    スイッチが受け入れるまで着信接続要求を確認してキューに入れるようにソケットを設定します

    注: Windows Vista 以降では、ワイルドカード IP アドレス 0.0.0.0 は使用できません。 また、Windows Vista 以降では、IPAutoconfigurationEnabled レジストリ キーの値が 0 に設定されている場合、IP アドレスの自動割り当ては無効になり、IP アドレスは割り当てられません。 この場合、ipconfig コマンドラインツールは IP アドレスを表示しません。 キーが 0 以外の値に設定されている場合は、IP アドレスが自動的に割り当てられます。 このキーは、レジストリ内の次のパスに配置できます。

    HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\IPAutoconfigurationEnabled

    HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\Interfaces\GUID\IPAutoconfigurationEnabled