NdisMReadConfigBlock 函式 (ndis.h)

PCI Express (PCIe 的迷你埠驅動程式) 虛擬函式 (VF) 會呼叫 NdisMReadConfigBlock 函式,以從 VF 組態區塊讀取數據。 VF 組態區塊的讀取作業是由網路適配器 PCIe 實體函式的迷你埠驅動程式處理, (PF) 。

注意NdisMReadConfigBlock 只能由 VF 迷你埠驅動程式呼叫。
 

語法

NDIS_STATUS NdisMReadConfigBlock(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [in]  ULONG       BlockId,
  [out] PVOID       Buffer,
  [in]  ULONG       Length
);

參數

[in] NdisMiniportHandle

NDIS 傳遞給 MiniportInitializeExMiniportAdapterHandle 參數的網路適配器句柄。

[in] BlockId

ULONG 值,指定要讀取之 VF 組態區塊的標識碼。 此標識元專屬於獨立硬體廠商 (IHV) ,且僅供 PF 和 VF 迷你埠驅動程式使用。

[out] Buffer

呼叫端配置的緩衝區指標,其中包含要求的組態數據。

[in] Length

要從 VF 組態區塊讀取的位元元組數目。

傳回值

NdisMReadConfigBlock 可以傳回下列其中一個狀態值:

傳回碼 Description
NDIS_STATUS_SUCCESS
查詢作業已順利完成。
NDIS_STATUS_FAILURE
查詢作業失敗。

備註

VF 迷你埠驅動程式會呼叫 NdisMReadConfigBlock ,以起始 PF 迷你埠驅動程式 VF 組態數據的反向通道讀取要求。 通知此要求之後,PF 驅動程式會從指定的 VF 組態區塊傳回數據。

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

注意 每個 VF 組態區塊的數據只會由 PF 和 VF 迷你埠驅動程式使用。
 
如需單一根目錄 I/O 虛擬化 (SR-IOV) 介面內後端通道通訊的詳細資訊,請參閱 SR-IOV PF/VF Backchannel Communication

如需 SR-IOV 介面的詳細資訊,請參閱 單一根目錄 I/O 虛擬化概觀 (SR-IOV)

與虛擬總線驅動程序互動

如果獨立硬體廠商 (IHV) 在 SR-IOV 驅動程式套件中提供虛擬總線驅動程式 (VBD) ,則其迷你埠驅動程式不得呼叫 NdisMReadConfigBlock。 相反地,驅動程式必須透過私人通道與 VBD 進行介面,並要求 VBD 呼叫 ReadVfConfigBlock。 此函式會從基礎虛擬PCI () 總線驅動程式支援的 GUID_VPCI_INTERFACE_STANDARD 介面公開。

在 Hyper-V 子數據分割的客體作業系統中執行的 VBD,可以透過對其實體裝置對象發出IRP_MN_QUERY_INTERFACE要求給其實體裝置物件, (PDO) ,以查詢GUID_VPCI_INTERFACE_STANDARD介面。 您必須從 IRQL = PASSIVE_LEVEL提出此要求。 在此要求中,驅動程式必須將 InterfaceType 參數設定為 GUID_VPCI_INTERFACE_STANDARD。

規格需求

需求
最低支援的用戶端 NDIS 6.30 和更新版本支援。
目標平台 Universal
標頭 ndis.h (包括 Ndis.h)
程式庫 Ndis.lib
IRQL <= APC_LEVEL

另請參閱

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock