次の方法で共有


NdisMInvalidateConfigBlock 関数 (ndis.h)

ミニポート ドライバーは、1 つ以上の仮想関数 (VF) 構成ブロックのデータが変更されたことを NDIS に通知する NdisMInvalidateConfigBlock 関数を呼び出します。

NdisMInvalidateConfigBlock は、ネットワーク アダプターの PCIe 物理機能 (PF) のミニポート ドライバーによってのみ呼び出す必要があります。
 

構文

void NdisMInvalidateConfigBlock(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] ULONGLONG              BlockMask
);

パラメーター

[in] NdisMiniportHandle

ネットワーク アダプターは、NDIS がミニポートInitializeEx ミニポートAdapterHandle パラメーターに渡ハンドルします。

[in] VFId

デバイスの場所が返される VF の識別子。

[in] BlockMask

最初の 64 VF 構成ブロックのビットマスクを指定する ULONGLONG 値。 ビットマスク内の各ビットは、VF 構成ブロックに対応します。 ビットが 1 に設定されている場合、対応する VF 構成ブロックに関連付けられているデータが変更されました。

戻り値

何一つ

備考

VF 構成ブロックは、PF ミニポート ドライバーと VF ミニポート ドライバー間のバックチャネル通信に使用されます。 IHV は、デバイスの 1 つ以上の VF 構成ブロックを定義できます。 各 VF 構成ブロックには、IHV で定義された形式、長さ、およびブロック ID があります。

各 VF 構成ブロックからのデータは、PF ミニポート ドライバーと VF ミニポート ドライバーでのみ使用されます。
 
VF 構成データは、次のドライバー間で交換されます。
  • VF ドライバー。ゲスト オペレーティング システムで実行されます。 このオペレーティング システムは、Hyper-V 子パーティション内で実行されます。
  • 管理オペレーティング システムで実行される PF ドライバー。

    このオペレーティング システムは、Hyper-V 親パーティション内で実行されます。

無効な VF 構成データの通知を処理するために、NDIS およびミニポート ドライバーは、次の手順を実行します。
  1. ゲスト オペレーティング システムでは、NDIS は、IOCTL_VPCI_INVALIDATE_BLOCK 要求の I/O 制御要求を発行します。 この IOCTL が完了すると、VF 構成データが変更されたことが NDIS に通知されます。
  2. 管理オペレーティング システムでは、次の手順が実行されます。
    1. PF ミニポート ドライバーは、VF 構成データが変更され、有効ではなくなったことを NDIS に通知する NdisMInvalidateConfigBlock 関数を呼び出します。
    2. NDIS は、VF 構成ブロック データへの変更について、管理オペレーティング システムで実行される仮想化スタックを通知します。 仮想化スタックは、BlockMask パラメーター データをキャッシュします。
      PF ミニポート ドライバーが NdisMInvalidateConfigBlock 呼び出すたびに、BlockMask パラメーター データをキャッシュ内の現在の値と共に仮想化スタック PR します。
       
    3. 仮想化スタックは、VF 構成データの無効化について、ゲスト オペレーティング システムで実行される仮想 PCI (VPCI) ドライバーに通知します。 仮想化スタックは、キャッシュされた BlockMask パラメーター データを VPCI ドライバーに送信します。
  3. ゲスト オペレーティング システムでは、次の手順が実行されます。
    1. VPCI ドライバーは、キャッシュされた BlockMask パラメーター・データを、IOCTL_VPCI_INVALIDATE_BLOCK 要求に関連付けられている VPCI_INVALIDATE_BLOCK_OUTPUT 構造体の BlockMask メンバーに保管します。
    2. VPCI ドライバーは、IOCTL_VPCI_INVALIDATE_BLOCK 要求を正常に完了します。 この場合、NDIS は、VF ミニポート ドライバーに OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK の OID メソッド要求を発行します。 NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO 要求は OID 要求で渡されます。 この構造体には、BlockMask パラメーター データ キャッシュされます。

      NDIS は、VF 構成データへの変更の連続した通知を処理する別の IOCTL_VPCI_INVALIDATE_BLOCK 要求も発行します。

    3. VF ドライバーは、OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 要求を処理するときに、指定された VF 構成ブロックからデータを読み取ります。
単一ルート I/O 仮想化 (SR-IOV) インターフェイス内のバックチャネル通信の詳細については、PF/VF バックチャネル通信 SR-IOV を参照してください。

SR-IOV インターフェイスの詳細については、「シングル ルート I/O 仮想化の概要 (SR-IOV)を参照してください。

必要条件

要件 価値
サポートされる最小クライアント サポートされていません。NDIS 6.30 以降でサポートされています。
サポートされる最小サーバー Windows Server 2012
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL

関連項目

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT