Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Miniporttreiber der PHYSISCHEn Funktion (PCIe) kommuniziert mit einem Miniporttreiber der virtuellen PCIe-Funktion (VF), um Benachrichtigungen über Änderungen an den Daten eines VF-Konfigurationsblocks auszugeben. Der PF-Miniporttreiber gibt diese Benachrichtigungen aus, um die Daten im VF-Konfigurationsblock ungültig zu machen. Als Reaktion auf diese Benachrichtigung kann der VF-Miniporttreiber eine Rückkanalanforderung an den PF-Miniporttreiber ausgeben, um die Daten aus einem ungültigen VF-Konfigurationsblock zu lesen.
Ein VF-Konfigurationsblock wird für die Backchannelkommunikation zwischen den PF- und VF-Miniporttreibern verwendet. Die IHV kann einen oder mehrere VF-Konfigurationsblöcke für das Gerät definieren. Jeder VF-Konfigurationsblock hat ein IHV-definiertes Format, eine länge und eine Block-ID.
Hinweis Daten aus jedem VF-Konfigurationsblock werden nur von den PF- und VF-Miniporttreibern verwendet. Das Format und der Inhalt dieser Daten sind für Komponenten des Windows-Betriebssystems nicht transparent.
Die folgenden Schritte werden beim Ausgeben und Behandeln von Benachrichtigungen zu ungültigen VF-Konfigurationsdaten ausgeführt:
Im Gastbetriebssystem gibt NDIS eine E/A-Steuerungsanforderung von IOCTL_VPCI_INVALIDATE_BLOCK aus. Wenn diese IOCTL abgeschlossen ist, wird NDIS benachrichtigt, dass sich die VF-Konfigurationsdaten geändert haben.
Im Verwaltungsbetriebssystem, das in der übergeordneten Hyper-V-Partition ausgeführt wird, werden die folgenden Schritte ausgeführt:
Der PF-Miniporttreiber ruft die NdisMInvalidateConfigBlock-Funktion auf, um NDIS zu benachrichtigen, dass SICH DIE VF-Konfigurationsdaten geändert haben und nicht mehr gültig sind. Der Treiber legt den BlockMask-Parameter auf eine ULONGLONGLONG-Bitmaske fest, die angibt, welche VF-Konfigurationsblöcke geändert wurden. Jedes Bit in der Bitmaske entspricht einem VF-Konfigurationsblock. Wenn das Bit auf eins festgelegt ist, haben sich die Daten im entsprechenden VF-Konfigurationsblock geändert.
NDIS signalisiert dem Virtualisierungsstapel, der im Verwaltungsbetriebssystem ausgeführt wird, die Änderung an VF-Konfigurationsblockdaten. Der Virtualisierungsstapel speichert die BlockMask-Parameterdaten zwischen.
Hinweis Jedes Mal, wenn der PF-Miniporttreiber NdisMInvalidateConfigBlock aufruft, verwendet der Virtualisierungsstapel die BlockMask-Parameterdaten mit dem aktuellen Wert im Cache.
Der Virtualisierungsstapel benachrichtigt den virtuellen PCI-Treiber (VPCI), der im Gastbetriebssystem ausgeführt wird, über die Ungültigkeit von VF-Konfigurationsdaten. Der Virtualisierungsstapel sendet die zwischengespeicherten BlockMask-Parameterdaten an den VPCI-Treiber.
Im Gastbetriebssystem, das in einer untergeordneten Hyper-V-Partition ausgeführt wird, werden die folgenden Schritte ausgeführt:
Der VPCI-Treiber speichert die zwischengespeicherten BlockMask-Parameterdaten im BlockMask-Member der VPCI_INVALIDATE_BLOCK_OUTPUT-Struktur , die der IOCTL_VPCI_INVALIDATE_BLOCK-Anforderung zugeordnet ist.
Der VPCI-Treiber schließt die IOCTL_VPCI_INVALIDATE_BLOCK Anforderung erfolgreich ab. In diesem Fall gibt NDIS eine OID-Methodenanforderung (Object Identifier) von OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK an den VF-Miniporttreiber aus. In der OID-Anforderung wird ein NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO übergeben. Diese Struktur enthält die zwischengespeicherten BlockMask-Parameterdaten .
NDIS stellt außerdem eine weitere IOCTL_VPCI_INVALIDATE_BLOCK-Anforderung zur Verarbeitung aufeinander folgender Benachrichtigungen über Änderungen an VF-Konfigurationsdaten.
Wenn der VF-Treiber die OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK-Anforderung verarbeitet, kann er Daten aus den angegebenen VF-Konfigurationsblöcken lesen, indem er NdisMReadConfigBlock aufruft. Weitere Informationen zu diesem Prozess finden Sie unter Backchannel Communication from a VF Miniport Driver.For more information about this process, see Backchannel Communication from a VF Miniport Driver.