刪除 NIC 交換器
支援單一根目錄 I/O 虛擬化 (SR-IOV) 的網路適配器必須能夠刪除 NIC 交換器。 只有 SR-IOV 配接器的 PCI Express (PCIe) 實體函式 (PF) 迷你埠驅動程式可以刪除配接器上的 NIC 交換器。
注意 從 Windows Server 2012 中的 NDIS 6.30 開始,SR-IOV 介面僅支援網路適配器上的一個 NIC 交換器。 這個交換器稱為 預設 NIC 交換器,並由 NDIS_DEFAULT_SWITCH_ID 識別符參考。
在停止 PF 迷你埠驅動程式之前,NDIS 會發出 OID_NIC_SWITCH_DELETE_SWITCH的物件識別碼(OID)設定要求來刪除 NIC 開關。 InformationBufferNDIS_OID_REQUEST 結構的成員包含 NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS 結構的指標,指定要刪除之參數的標識碼。
在 NDIS 向 PF 迷你埠驅動程式發出 OID_NIC_SWITCH_DELETE_SWITCH OID 設定請求之前,它會強制執行以下政策:
NDIS 保證所有接收篩選器都已從 NIC 交換器上的預設和非預設虛擬埠 (VPorts) 清除。 接收篩選會透過 OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 集合要求清除。
NDIS 保證先前已在交換器上建立的所有非預設虛擬埠 (VPorts) 都已刪除。 VPorts 會藉由對 OID_NIC_SWITCH_DELETE_VPORT的 OID 設定要求來刪除。
NDIS 保證連接至 NIC 交換器的 PCIe 虛擬功能 (VFs) 所有相關資源已事先釋放。 透過 OID_NIC_SWITCH_FREE_VF的 OID 設定要求來釋放 VF。
當它收到 OID_NIC_SWITCH_DELETE_SWITCH的 OID 方法要求時,PF 迷你埠驅動程式必須執行下列動作:
如果 PF 迷你埠驅動程式支援靜態建立和設定 NIC 交換器,則必須釋放與指定 NIC 交換器相關聯的軟體資源。 不過,只有在呼叫 MiniportHaltEx 時,驅動程式才能釋放用於 NIC 交換器的硬體資源。
如需靜態 NIC 交換器建立的詳細資訊,請參閱 靜態建立 NIC 交換器。
如果 PF 迷你埠驅動程式支援動態建立和設定 NIC 交換器,則必須釋放與指定 NIC 交換器相關聯的硬體和軟體資源。
如需動態 NIC 交換器建立的詳細資訊,請參閱 動態建立 NIC 交換器。
如果 PF 迷你埠驅動程式支援動態建立 NIC 交換器,而且網路適配器上已刪除所有 NIC 交換器,則驅動程式必須呼叫 NdisMEnableVirtualization來停用適配卡上的虛擬化。 若要停用虛擬化,網路適配器必須將 EnableVirtualization 參數設定為 FALSE,並將 NumVF 參數設定為零。
NdisMEnableVirtualization 會清除 NumVF 成員,以及網路適配器 PF 之 PCIe 組態空間中 SR-IOV 擴充功能結構的 VF Enable 位。
注意 如果 PF 迷你埠驅動程式支援靜態建立和設定 NIC 交換器,則必須僅在呼叫 MiniportHaltEx 時才呼叫 NdisMEnableVirtualization。