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 驅動程式。 此作系統會在 Hyper-V 子分割內執行。
-
在管理作系統中執行的 PF 驅動程式。
此作系統會在 Hyper-V 父分割區內執行。
- 在客體作系統中,NDIS 會發出 IOCTL_VPCI_INVALIDATE_BLOCK 要求的 I/O 控制要求。 當此 IOCTL 完成時,NDIS 會收到 VF 設定數據已變更的通知。
-
在管理作系統中,會發生下列步驟:
- PF 迷你埠驅動程式會呼叫 NdisMInvalidateConfigBlock 函式,以通知 NDIS VF 設定數據已變更且不再有效。
-
NDIS 會針對 VF 組態區塊數據的變更,向管理作系統中執行的虛擬化堆疊發出訊號。 虛擬化堆疊會快取 BlockMask 參數數據。
附註 每次 PF 迷你埠驅動程式呼叫 NdisMInvalidateConfigBlock時,虛擬堆棧 OS 會 BlockMask 參數數據及其快取中的目前值。
- 虛擬化堆疊會通知在客體作系統中執行的虛擬PCI (VPI) 驅動程式,以瞭解VF組態數據的失效。 虛擬化堆疊會將快取的 BlockMask 參數數據傳送至VPI驅動程式。
-
在客體作系統中,會發生下列步驟:
- 在與 IOCTL_VPCI_INVALIDATE_BLOCK 要求相關聯之 VPCI_INVALIDATE_BLOCK_OUTPUT 結構 BlockMask 成員中,將快取 BlockMask 參數數據儲存在快取的區塊掩碼中。
-
在 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 設定數據變更的後續通知。
- 當 VF 驅動程式處理 OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK 要求時,它會從指定的 VF 組態區塊讀取數據。
如需 SR-IOV 介面的詳細資訊,請參閱 單一根 I/O 虛擬化概觀 (SR-IOV)。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 不支援,在 NDIS 6.30 和更新版本中支援。 |
支援的最低伺服器 | Windows Server 2012 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
另請參閱
NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO