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.
Miniporttreiber, die die Verarbeitung von RSS-Handle nicht unterstützen, wie in diesem Thema beschrieben.
Die folgende Abbildung veranschaulicht die Verarbeitung von Nicht-RSS-Empfangen.
In der Abbildung stellen die gestrichelten Pfade einen alternativen Pfad für die Sende- und Empfangsverarbeitung dar. Da das System die Skalierung steuert, tritt die Verarbeitung nicht immer auf der CPU auf, die die beste Leistung bietet. Verbindungen werden auf derselben CPU über aufeinander folgende Unterbrechungen nur zufällig verarbeitet.
Der folgende Prozess wird für jeden Nicht-RSS-Interruptzyklus wiederholt:
Die NIC verwendet DMA, um einen Puffer mit empfangenen Daten auszufüllen und das System zu unterbrechen.
Der Miniporttreiber hat während der Initialisierung die Empfangspuffer im gemeinsam genutzten Speicher zugewiesen.
Die NIC kann weiterhin zusätzliche Empfangspuffer jederzeit in diesem Unterbrechungszyklus ausfüllen. Die NIC unterbricht jedoch erst wieder, wenn der Miniporttreiber die Unterbrechungen erneut aktiviert.
Die empfangenen Puffer, die das System in einem Unterbrechungszyklus behandelt, können vielen verschiedenen Netzwerkverbindungen zugeordnet werden.
NDIS ruft die MiniportInterrupt-Funktion (ISR) des Miniporttreibers auf einer systembestimmten CPU auf.
Im Idealfall sollte der ISR zur am wenigsten ausgelasteten CPU wechseln. In einigen Systemen weist das System den ISR jedoch einer verfügbaren CPU oder einer CPU zu, die der NIC zugeordnet ist.
Der ISR deaktiviert die Unterbrechungen und fordert NDIS auf, einen verzögerten Prozeduraufruf (Deferred Procedure Call, DPC) in die Warteschlange zu stellen, um die empfangenen Daten zu verarbeiten.
NDIS ruft die MiniportInterruptDPC-Funktion (DPC) auf der aktuellen CPU auf.
Die DPC-Builds erhalten Deskriptoren für alle empfangenen Puffer und leiten die Daten in den Treiberstapel weiter. Weitere Informationen finden Sie unter Empfangen von Netzwerkdaten.
Es kann viele Puffer für viele verschiedene Verbindungen geben, und es gibt möglicherweise viele Verarbeitungen, die abgeschlossen werden müssen. Die empfangenen Daten, die nachfolgenden Unterbrechungszyklen zugeordnet sind, können auf anderen CPUs verarbeitet werden. Die Sendeverarbeitung für eine bestimmte Netzwerkverbindung kann auch auf einer anderen CPU ausgeführt werden.
Der DPC aktiviert die Unterbrechungen. Dieser Unterbrechungszyklus ist abgeschlossen und der Prozess wird erneut gestartet.