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 傳遞給 MiniportInitializeEx 之 MiniportAdapterHandle 參數的網路適配器句柄。
[in] VFId
傳回裝置位置之 VF 的標識碼。
[in] BlockMask
ULONGLONG 值,指定前 64 個 VF 組態區塊的位掩碼。 位掩碼中的每個位都會對應至 VF 組態區塊。 如果位設定為 1,則與對應 VF 組態區塊相關聯的數據已變更。
傳回值
無
備註
VF 組態區塊用於 PF 與 VF 迷你埠驅動程式之間的反向通道通訊。 IHV 可以定義裝置的一或多個 VF 組態區塊。 每個 VF 組態區塊都有 IHV 定義的格式、長度和區塊識別碼。
注意 來自每個 VF 組態區塊的數據只會由 PF 和 VF 迷你埠驅動程式使用。
- 在客體作業系統中執行的 VF 驅動程式。 此操作系統會在 Hyper-V 子分割內執行。
-
在管理作業系統中執行的 PF 驅動程式。
此操作系統會在 Hyper-V 父分割區內執行。
- 在客體操作系統中,NDIS 發出 IOCTL_VPCI_INVALIDATE_BLOCK 要求的 I/O 控制要求。 完成此 IOCTL 時,NDIS 會收到 VF 設定數據已變更的通知。
-
在管理作業系統中,會發生下列步驟:
- PF 迷你埠驅動程式會呼叫 NdisMInvalidateConfigBlock 函式來通知 NDIS VF 設定數據已變更且不再有效。
-
NDIS 會向在管理作業系統中執行的虛擬化堆疊發出訊號,告知 VF 設定區塊數據的變更。 虛擬化堆疊會快取 BlockMask 參數數據。
注意 每次 PF 迷你埠驅動程式呼叫 NdisMInvalidateConfigBlock 時,虛擬化堆棧 ORS BlockMask 參數數據在其快取中具有目前值。
- 虛擬化堆疊會通知虛擬PCI (在客體作業系統中執行的PCII) 驅動程式,說明 VF 設定資料的失效。 虛擬化堆疊會將快取的 BlockMask 參數數據傳送至 APII 驅動程式。
-
在客體操作系統中,會發生下列步驟:
- 在與IOCTL_VPCI_INVALIDATE_BLOCK要求相關聯的 VPCI_INVALIDATE_BLOCK_OUTPUT 結構 BlockMask 成員中,將快取的 BlockMask 參數數據儲存在IOCTL_VPCI_INVALIDATE_BLOCK驅動程式中。
-
IOCTL_VPCI_INVALIDATE_BLOCK驅動程式成功完成 IOCTL_VPCI_INVALIDATE_BLOCK 要求。 發生這種情況時,NDIS 會發出 VF 迷你埠驅動程式OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK的 OID 方法要求。 NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO要求會在 OID 要求中一起傳遞。 此結構包含快取的 BlockMask 參數數據。
NDIS 也會發出另一個 IOCTL_VPCI_INVALIDATE_BLOCK 要求,以處理 VF 設定數據變更的後續通知。
- 當 VF 驅動程式處理 OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 要求時,它會從指定的 VF 組態區塊讀取數據。
如需 SR-IOV 介面的詳細資訊,請參閱 單一根目錄 I/O 虛擬化概觀 (SR-IOV) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.30 和更新版本中不支援,不支援。 |
最低支援的伺服器 | Windows Server 2012 |
目標平台 | Universal |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
另請參閱
NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO