NdisMReadConfigBlock-Funktion (ndis.h)

Ein Miniporttreiber für eine PCI Express (PCIe) Virtual Function (VF) ruft die NdisMReadConfigBlock-Funktion auf, um Daten aus einem VF-Konfigurationsblock zu lesen. Lesevorgänge für einen VF-Konfigurationsblock werden vom Miniporttreiber der PCIe Physical Function (PF) des Netzwerkadapters verarbeitet.

Hinweis:NdisMReadConfigBlock darf nur vom VF-Miniporttreiber aufgerufen werden.
 

Syntax

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

Parameter

[in] NdisMiniportHandle

Das Netzwerkadapterhandle, das NDIS an den MiniportAdapterHandle-Parameter von MiniportInitializeEx übergeben hat.

[in] BlockId

Ein ULONG-Wert, der den Bezeichner des zu lesenden VF-Konfigurationsblocks angibt. Dieser Bezeichner ist für den unabhängigen Hardwareanbieter (Independent Hardware Vendor, IHV) geschützt und wird nur von den PF- und VF-Miniporttreibern verwendet.

[out] Buffer

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die angeforderten Konfigurationsdaten enthält.

[in] Length

Die Anzahl der Bytes, die aus dem VF-Konfigurationsblock gelesen werden sollen.

Rückgabewert

NdisMReadConfigBlock kann einen der folgenden status Werte zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Abfragevorgang wurde erfolgreich abgeschlossen.
NDIS_STATUS_FAILURE
Fehler beim Abfragevorgang.

Hinweise

Der VF-Miniporttreiber ruft NdisMReadConfigBlock auf, um eine Backchannel-Leseanforderung für VF-Konfigurationsdaten durch den PF-Miniporttreiber zu initiieren. Nach der Benachrichtigung über diese Anforderung gibt der PF-Treiber die Daten aus dem angegebenen VF-Konfigurationsblock zurück.

Ein VF-Konfigurationsblock wird für die Backchannel-Kommunikation zwischen den PF- und VF-Miniporttreibern verwendet. Der IHV kann einen oder mehrere VF-Konfigurationsblöcke für das Gerät definieren. Jeder VF-Konfigurationsblock verfügt über ein IHV-definiertes Format, eine länge und eine Block-ID.

Hinweis Daten aus den einzelnen VF-Konfigurationsblöcken werden nur von den Pf- und VF-Miniporttreibern verwendet.
 
Weitere Informationen zur Backchannelkommunikation innerhalb der SR-IOV-Schnittstelle (Single Root E/O Virtualization) finden Sie unter SR-IOV PF/VF Backchannel Communication.

Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Overview of Single Root E/O Virtualization (SR-IOV).

Interfacing to a Virtual Bus Driver

Wenn ein unabhängiger Hardwareanbieter (Independent Hardware Vendor, IHV) als Teil des SR-IOV-Treiberpakets einen virtuellen Bustreiber (VBD) bereitstellt, darf sein Miniporttreiber NdisMReadConfigBlock nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD ReadVfConfigBlock aufruft. Diese Funktion wird über die GUID_VPCI_INTERFACE_STANDARD-Schnittstelle verfügbar gemacht, die vom zugrunde liegenden VIRTUAL PCI-Bustreiber (VPCI) unterstützt wird.

Die VBD, die im Gastbetriebssystem einer untergeordneten Hyper-V-Partition ausgeführt wird, kann die GUID_VPCI_INTERFACE_STANDARD-Schnittstelle abfragen, indem sie eine IRP_MN_QUERY_INTERFACE Anforderung an ihr physisches Geräteobjekt (PDO) auf dem VPCI-Bus ausgibt. Diese Anforderung muss von IRQL = PASSIVE_LEVEL erfolgen. In dieser Anforderung muss der Treiber den Parameter InterfaceType auf GUID_VPCI_INTERFACE_STANDARD festlegen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.30 und höher.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= APC_LEVEL

Weitere Informationen

GUID_VPCI_INTERFACE_STANDARD

ReadVfConfigBlock