共用方式為


NdisMInvalidateConfigBlock 函式 (ndis.h)

迷你埠驅動程式會呼叫 NdisMInvalidateConfigBlock 函式,以通知 NDIS 一或多個虛擬函式 (VF) 組態區塊的數據已變更。

注意NdisMInvalidateConfigBlock 只能由網路適配器 PCIe 實體函式 (PF) 的迷你埠驅動程式呼叫。
 

語法

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

參數

[in] NdisMiniportHandle

NDIS 傳遞至 MiniportAdapterHandleMiniportInitializeEx的網路適配器句柄。

[in] VFId

傳回裝置位置之 VF 的標識碼。

[in] BlockMask

ULONGLONG 值,指定前 64 個 VF 組態區塊的位掩碼。 位掩碼中的每個位都會對應至 VF 組態區塊。 如果位設定為一個,則與對應 VF 組態區塊相關聯的數據已變更。

傳回值

沒有

言論

VF 組態區塊用於 PF 與 VF 迷你埠驅動程式之間的反向通道通訊。 IHV 可以定義裝置的一或多個 VF 組態區塊。 每個 VF 組態區塊都有 IHV 定義的格式、長度和區塊識別碼。

注意 每個 VF 組態區塊中的數據只會由 PF 和 VF 迷你埠驅動程式使用。
 
VF 組態資料會在下列驅動程式之間交換:
  • 在客體作系統中執行的 VF 驅動程式。 此作系統會在 Hyper-V 子分割內執行。
  • 在管理作系統中執行的 PF 驅動程式。

    此作系統會在 Hyper-V 父分割區內執行。

為了處理無效 VF 設定數據的通知,NDIS 和迷你埠驅動程式會執行下列步驟:
  1. 在客體作系統中,NDIS 會發出 IOCTL_VPCI_INVALIDATE_BLOCK 要求的 I/O 控制要求。 當此 IOCTL 完成時,NDIS 會收到 VF 設定數據已變更的通知。
  2. 在管理作系統中,會發生下列步驟:
    1. PF 迷你埠驅動程式會呼叫 NdisMInvalidateConfigBlock 函式,以通知 NDIS VF 設定數據已變更且不再有效。
    2. NDIS 會針對 VF 組態區塊數據的變更,向管理作系統中執行的虛擬化堆疊發出訊號。 虛擬化堆疊會快取 BlockMask 參數數據。
      附註 每次 PF 迷你埠驅動程式呼叫 NdisMInvalidateConfigBlock時,虛擬堆棧 OS 會 BlockMask 參數數據及其快取中的目前值。
       
    3. 虛擬化堆疊會通知在客體作系統中執行的虛擬PCI (VPI) 驅動程式,以瞭解VF組態數據的失效。 虛擬化堆疊會將快取的 BlockMask 參數數據傳送至VPI驅動程式。
  3. 在客體作系統中,會發生下列步驟:
    1. 在與 IOCTL_VPCI_INVALIDATE_BLOCK 要求相關聯之 VPCI_INVALIDATE_BLOCK_OUTPUT 結構 BlockMask 成員中,將快取 BlockMask 參數數據儲存在快取的區塊掩碼中。
    2. IOCTL_VPCI_INVALIDATE_BLOCK 要求中,JSONI 驅動程式已順利完成。 發生這種情況時,NDIS 會向 VF 迷你埠驅動程式發出 OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 的 OID 方法要求。 NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO 要求會在 OID 要求中傳遞。 此結構包含快取 BlockMask 參數數據。

      NDIS 也會發出另一個 IOCTL_VPCI_INVALIDATE_BLOCK 要求,以處理 VF 設定數據變更的後續通知。

    3. 當 VF 驅動程式處理 OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 要求時,它會從指定的 VF 組態區塊讀取數據。
如需單一根目錄 I/O 虛擬化 (SR-IOV) 介面內反向通道通訊的詳細資訊,請參閱 SR-IOV PF/VF Backchannel Communication

如需 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