次の方法で共有


SAN NIC 通知の登録

プロキシ ドライバーが関連付けられた SAN サービス プロバイダーから要求を受信し、ドライバーの制御下で NIC に割り当てられている IP アドレスのリストを提供すると、ドライバーがこのリストを判断してプロバイダーに渡します。

これらの IP アドレスを取得するため、プロキシ ドライバーは、アドレス変更通知を受信するトランスポート ドライバー インターフェイス (TDI) に登録する必要があります。 プロキシ ドライバーは、TdiRegisterPnPHandlers 関数を呼び出します。 この呼び出しでは、このプロキシ ドライバーは、TDI_CLIENT_INTERFACE_INFO 構造の AddAddressHandlerV2 および DelAddressHandlerV2 メンバーのコールバック関数にポインターを渡し、アドレスの追加と削除のコールバック関数を指定します。 TdiRegisterPnPHandlers 関数が正常に返されると、TDI は、address-addition コールバックを使用して、現在アクティブなすべてのネットワーク アドレスをプロキシ ドライバーにすぐに示します。 この指示には、ネットワーク アドレスと、それらのアドレスがバインドされているデバイスの識別子の両方が含まれます。

TDI がこれらのコールバック関数のいずれかを呼び出してアドレスの追加または削除を示すときは必ず、プロキシ ドライバーに以下のパラメーターが必要です。

住所
NIC に割り当てられたか、NIC から削除されたネットワーク アドレスを記述する TA_ADDRESS 構造へのポインター。 TCP/IP の場合、このポインターは実際には TA_ADDRESS_IP 構造へのポインターになります。

DeviceName
アドレスが関連付けられているトランスポートから NIC へのバインドを識別する Unicode 文字列へのポインター。 TCP/IP の場合、Unicode 文字列の形式は \Device\Tcpip_{NIC-GUID} です。ここで、NIC GUID は、ネットワーク構成サブシステムによって NIC に割り当てられるグローバル一意識別子です。

上記の構造定義は、tdi.h ヘッダー ファイルで定義されます。 上記の登録関数とコールバック関数は、tdikrnl.h ヘッダー ファイルで定義されます。 これらのヘッダー ファイルは、Microsoft Windows Driver Development Kit (DDK) と Windows Driver Kit (WDK) で使用できます。 TDI プラグ アンド プレイ (PnP) 通知について詳しくは、「TDI クライアント コールバック」と「TDI クライアント イベントおよび PnP 通知ハンドラー」をご覧ください。

システムの起動時、TDI はプロキシ ドライバーの address-addition コールバックを呼び出して、現在アクティブなすべての IP アドレスを示します。 TDI は、TCP/IP トランスポート プロトコルが TDI に新しい IP アドレスを登録するたびに、このコールバックも呼び出します。 プロキシ ドライバーは、IP アドレスのリストに、プロキシ ドライバーの NIC に割り当てられているアドレスのみ含めます。 ドライバーの address-addition コールバックは、ドライバーが DeviceName で NIC を認識しない場合はすぐに制御を返す必要があります。

TDI は、NIC が削除されたことを TCP/IP トランスポート プロトコルが TDI に示すたびに、プロキシ ドライバーの address-removal コールバックを呼び出します。 NIC の IP アドレスがプロキシ ドライバーの NIC のいずれかに属している場合、プロキシ ドライバーはリストから IP アドレスを削除します。

TDI は Windows Vista より後の Microsoft Windows バージョンでサポートされません。 代わりに、Windows フィルタリング プラットフォームWinsock カーネルを使用してください。