NdisMCoIndicateReceiveNetBufferLists-Funktion (ndis.h)
Die NdisMCoIndicateReceiveNetBufferLists Funktion 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 erhalten, entweder wenn ein Client einen ausgehenden Anruf einrichtet oder wenn der Anrufmanager eine VC für einen client registrierten Dienstzugriffspunkt (SAP) erstellt hat, um eine eingehende Anrufbenachrichtigung anzuzeigen.
[in] NetBufferLists
Eine verknüpfte Liste der 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 der 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 Null fest. NdisMCoIndicateReceiveNetBufferLists unterstützt die folgenden Flags:
NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL
Die aktuelle IRQL ist DISPATCH_LEVEL. Weitere Informationen zu diesem Kennzeichen finden Sie unter IRQL Tracking.
NDIS_RECEIVE_FLAGS_RESOURCES
Der Miniport-Treiber übernimmt den Besitz der NET_BUFFER_LIST Strukturen und alle angefügten NET_BUFFER Strukturen unmittelbar nach NdisMCoIndicateReceiveNetBufferLists zurückgegeben.
Rückgabewert
Nichts
Bemerkungen
Ein Miniporttreiber ruft in der Regel die NdisMCoIndicateReceiveNetBufferLists Funktion aus der MiniportInterruptDPC--Funktion auf. Wenn ein Miniporttreiber NdisMCoIndicateReceiveNetBufferListsaufruft, gibt er eine Liste der NET_BUFFER_LIST Strukturen im NetBufferLists Parameter an. Anschließend übergibt NDIS die NET_BUFFER_LIST Strukturen an gebundene Protokolltreiber.
Miniport-Treiber müssen den SourceHandle- Member jeder NET_BUFFER_LIST Struktur auf denselben Wert wie der 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 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 Miniport-Treiber-Funktion 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 unmittelbar nach NdisMCoIndicateReceiveNetBufferLists zurückfordern, zurückgegeben wird. Um die NET_BUFFER_LIST Strukturen zurückzufordern, kann ein Miniporttreiber eigene 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 ausreichend vorverteilten 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 |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
Zielplattform- | Desktop |
Header- | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | Irql_MCO_Function(ndis) |