NdisMCoIndicateReceiveNetBufferLists-Funktion (ndis.h)

Die Funktion NdisMCoIndicateReceiveNetBufferLists gibt an, dass der Miniporttreiber Daten aus dem Netzwerk empfangen hat.

Syntax

void NdisMCoIndicateReceiveNetBufferLists(
  [in] IN NDIS_HANDLE      NdisVcHandle,
  [in] IN PNET_BUFFER_LIST NetBufferLists,
  [in] IN ULONG            NumberOfNetBufferLists,
  [in] IN ULONG            CoReceiveFlags
);

Parameter

[in] NdisVcHandle

Ein Handle, das eine virtuelle Verbindung (VC) identifiziert. Der Miniporttreiber hat dieses Handle als Eingabeparameter für seine MiniportCoCreateVc-Funktion abgerufen, entweder wenn ein Client einen ausgehenden Anruf einrichtet oder wenn der Anrufmanager eine VC für einen vom Client registrierten Dienstzugriffspunkt (SAP) erstellt hat, um eine Benachrichtigung über eingehende Anrufe anzugeben.

[in] NetBufferLists

Eine verknüpfte Liste von NET_BUFFER_LIST Strukturen, die der Miniporttreiber zugewiesen hat.

[in] NumberOfNetBufferLists

Die Anzahl der NET_BUFFER_LIST Strukturen, die sich in der verknüpften Liste von Strukturen befinden, die NetBufferLists angibt.

[in] CoReceiveFlags

Flags, die Attribute für den Sendevorgang definieren. Die Flags können mit einem bitweisen OR-Vorgang kombiniert werden. Um alle Flags zu löschen, legen Sie diesen Parameter auf 0 fest. NdisMCoIndicateReceiveNetBufferLists unterstützt die folgenden Flags:

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

Die aktuelle IRQL ist DISPATCH_LEVEL. Weitere Informationen zu diesem Flag finden Sie unter Dispatch IRQL Tracking.

NDIS_RECEIVE_FLAGS_RESOURCES

Der Miniporttreiber übernimmt unmittelbar nach der Rückgabe von NdisMCoIndicateReceiveNetBufferLists den Besitz der NET_BUFFER_LIST-Strukturen und aller angefügten NET_BUFFER Strukturen.

Rückgabewert

Keine

Bemerkungen

Ein Miniporttreiber ruft in der Regel die Funktion NdisMCoIndicateReceiveNetBufferLists über seine MiniportInterruptDPC-Funktion auf. Wenn ein Miniporttreiber NdisMCoIndicateReceiveNetBufferLists aufruft, gibt er eine Liste mit NET_BUFFER_LIST Strukturen am NetBufferLists-Parameter an. NDIS übergibt dann die NET_BUFFER_LIST-Strukturen an gebundene Protokolltreiber.

Miniporttreiber müssen den SourceHandle-Member jeder NET_BUFFER_LIST-Struktur auf denselben Wert wie den NdisVcHandle-Parameter festlegen, damit NDIS die NET_BUFFER_LIST Strukturen an den richtigen Miniporttreiber zurückgeben kann.

Wenn ein Miniporttreiber NdisMCoIndicateReceiveNetBufferLists aufruft und das NDIS_RECEIVE_FLAGS_RESOURCES-Flag im CoReceiveFlags-Parameter löscht, gibt NDIS die NET_BUFFER_LIST Strukturen zurück, die NetBufferLists für den Miniporttreiber angibt. MiniportReturnNetBufferLists-Funktion . In diesem Fall darf der Miniporttreiber die NET_BUFFER_LIST-Strukturen erst zurückfordern, wenn NDIS die NET_BUFFER_LIST Strukturen an die MiniportReturnNetBufferLists-Funktion des Miniporttreibers zurückgibt.

Wenn ein Miniporttreiber NdisMCoIndicateReceiveNetBufferLists aufruft und das NDIS_RECEIVE_FLAGS_RESOURCES-Flag im CoReceiveFlags-Parameter festlegt, muss der Miniporttreiber den Besitz der NET_BUFFER_LIST-Strukturen sofort wieder erlangen. In diesem Fall ruft NDIS die MiniportReturnNetBufferLists-Funktion des Miniporttreibers nicht auf, um die NET_BUFFER_LIST-Strukturen zurückzugeben. Stattdessen gibt NDIS die NET_BUFFER_LIST-Strukturen an den Miniporttreiber zurück, wenn NdisMCoIndicateReceiveNetBufferLists zurückgibt. Der Miniporttreiber sollte die NET_BUFFER_LIST Strukturen sofort nach der Rückgabe von NdisMCoIndicateReceiveNetBufferLists zurückfordern. Um die NET_BUFFER_LIST Strukturen wiederzuerobern, kann ein Miniporttreiber seinen eigenen Aufrufen MiniportReturnNetBufferLists-Funktion .

Wenn ein Miniporttreiber das NDIS_RECEIVE_FLAGS_RESOURCES-Flag im CoReceiveFlags-Parameter festlegt, müssen die Protokolltreiber die Netzwerkdaten kopieren und die NET_BUFFER_LIST Strukturen an den Miniporttreiber freigeben. Sie sollten Ihre Miniporttreiber mit genügend vorab zugewiesenen NET_BUFFER_LIST-Strukturen entwerfen, um unnötiges Kopieren zu vermeiden.

Der Aufrufer von NdisMCoIndicateReceiveNetBufferLists muss die NET_BUFFER_LIST-Strukturen, die angefügten NET_BUFFER-Strukturen und alle angefügten Speicherdeskriptorlisten (MDLs) ordnungsgemäß initialisieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_MCO_Function(ndis)

Weitere Informationen

MiniportCoCreateVc

MiniportInterruptDPC

MiniportReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST