キャプチャ拡張機能

拡張機能をキャプチャする Hyper-V 拡張可能スイッチは、パケット トラフィック、オブジェクト識別子 (OID) 要求、および NDIS 状態表示を検査します。 この種類の拡張機能では、パケットを変更または削除したり、拡張可能なスイッチ ポートにパケットを配信対象から除外したりすることはできません。 ただし、キャプチャ拡張機能から、拡張機能がホスト アプリケーションに送信するトラフィック統計情報を含むパケットなどのパケット トラフィックが発生する可能性があります。

キャプチャ拡張機能は、イングレス データ パスの開始時とエグレス データ パスの最後に呼び出されます。 これらのデータ パスの詳細については、「Hyper-V 拡張可能スイッチのデータ パス」を参照してください。

キャプチャ拡張機能には、次の要件と制限があります。

  • キャプチャ拡張機能は、拡張可能スイッチ インターフェイスをサポートする NDIS フィルター ドライバーとして開発する必要があります。

    フィルター ドライバーについて詳しくは、「NDIS フィルター ドライバー」を参照してください。

    キャプチャ拡張機能を記述する方法の詳細については、「Hyper-V 拡張可能スイッチ拡張機能の記述」を参照してください。

  • キャプチャ拡張機能は、標準の NDIS 監視フィルター ドライバーと同じ機能を提供します。 ただし、キャプチャ拡張機能の INF ファイルは、変更フィルター ドライバーとしてインストールする必要があります。

    フィルター ドライバーの変更について詳しくは、「WDM ドライバーの種類」をご覧ください。

    フィルター ドライバーを変更するための INF 要件の詳細については、「フィルター ドライバーを変更するための INF ファイルの構成」を参照してください。

  • キャプチャ拡張機能では、拡張可能スイッチのイングレスおよびエグレス拡張可能スイッチ データ パス上のパケットを監視できます。 ただし、この種類の拡張機能では、拡張可能スイッチ ドライバー スタック内の基になるドライバーにパケットを転送し、完了しないように、必ず NdisFSendNetBufferLists を呼び出す必要があります。

  • キャプチャ拡張機能は、パケット内のデータを変更したり、パケットの帯域外 (OOB) データにポート宛先を追加したりしてはなりません。 拡張機能は、拡張可能なスイッチ ポートへのパケットの配信を除外してはなりません。

  • キャプチャ拡張機能はパケットを発信できます。 たとえば、この拡張機能は、トラフィックの状態をリモート監視アプリケーションに報告するためにパケットを送信する場合があります。

    拡張機能による送信元パケットの詳細については、「送信元パケット トラフィック」を参照してください。

    : 他の拡張機能と同様に、キャプチャ拡張機能は、拡張可能スイッチのイングレス データ パス内のパケット トラフィックのみを発信できます。

  • キャプチャ拡張機能では、拡張可能スイッチ ドライバー スタックを介して発行されたパケット、OID 要求、および NDIS 状態インジケーターを監視できます。 ただし、この種類の拡張機能は、拡張可能スイッチ ドライバー スタックを介してパケット、OID 要求、および NDIS 状態表示を転送する必要があります。 拡張機能は、監視するパケット、OID 要求、または NDIS 状態表示内のデータを変更することはできません。

  • 拡張子の INF ファイルの FilterClass 値を ms_switch_capture に設定する必要があります。 詳細については、「Hyper-V 拡張可能スイッチ拡張機能の INF 要件」を参照してください。

  • 任意の数のキャプチャ拡張機能を拡張可能スイッチ インスタンスにバインドできます。 既定では、複数のキャプチャ拡張機能は、インストールされた日時に基づいて順序付けられます。 たとえば、複数のキャプチャ拡張機能は、拡張可能スイッチ ドライバー スタックに階層化され、最後にインストールされた拡張機能はスタック内の他のキャプチャ拡張機能の上に重ねられます。

    拡張可能スイッチ インスタンスにバインドされると、拡張可能スイッチ ドライバー スタック内のキャプチャ拡張機能のレイヤーを並べ替えることができます。 詳細については、「Hyper-V 拡張可能スイッチ拡張機能の並べ替え」を参照してください。