Freigeben über


Angeben von RSS-Empfangsdaten

Ein Miniporttreiber gibt empfangene Daten an, indem er die Funktion NdisMIndicateReceiveNetBufferLists über seine MiniportInterruptDPC-Funktion aufruft .

Nachdem die NIC den RSS-Hashwert erfolgreich berechnet hat, sollte der Treiber den Hashtyp, die Hashfunktion und den Hashwert in der NET_BUFFER_LIST-Struktur mit den folgenden Makros speichern:

NET_BUFFER_LIST_SET_HASH_TYPE

NET_BUFFER_LIST_SET_HASH_FUNCTION

NET_BUFFER_LIST_SET_HASH_VALUE

Der Hashtyp identifiziert den Bereich des empfangenen Pakets, über den der Hash berechnet werden soll. Weitere Informationen zum Hashtyp finden Sie unter RSS-Hashingtypen. Die Hashfunktion identifiziert die Funktion, die zum Berechnen des Hashwerts verwendet wird. Weitere Informationen zu Hashfunktionen finden Sie unter RSS Hashing Functions. Der Protokolltreiber wählt bei der Initialisierung den Hashtyp und die Funktion aus. Weitere Informationen finden Sie unter RSS-Konfiguration.

Wenn die NIC den Bereich des Pakets, den der Hashtyp angibt, nicht identifiziert, sollte sie keine Hashberechnung oder Skalierung durchführen. In diesem Fall sollte der Miniporttreiber oder die NIC die empfangenen Daten der Standard-CPU zuweisen.

Wenn für die NIC keine Empfangspuffer vorhanden sind, muss jeder Puffer zurückgegeben werden, sobald der ursprüngliche Empfangs-DPC zurückgegeben wird. Der Miniporttreiber kann die empfangenen Daten mit einer status NDIS_STATUS_RESOURCES angeben. In diesem Fall muss der überlastende Treiber einen langsamen Pfad durchlaufen, indem er die Pufferdeskriptoren kopiert und den Besitz des ursprünglichen Treibers sofort aufgibt.

Weitere Informationen zum Empfangen von Netzwerkdaten finden Sie unter Empfangen von Netzwerkdaten.