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.
Die NdisCoSendNetBufferLists Funktion sendet Netzwerkdaten, die in einer angegebenen Liste von NET_BUFFER_LIST Strukturen enthalten sind.
Syntax
VOID NdisCoSendNetBufferLists(
[in] NDIS_HANDLE NdisVcHandle,
[in] PNET_BUFFER_LIST NetBufferLists,
[in] ULONG SendFlags
);
Parameter
[in] NdisVcHandle
Ein Handle zu einer virtuellen Verbindung (VC), die das Ziel der Sendeanforderung identifiziert.
[in] NetBufferLists
Ein Zeiger auf eine verknüpfte Liste von NET_BUFFER_LIST Strukturen. Jede NET_BUFFER_LIST Struktur beschreibt eine Liste der NET_BUFFER Strukturen.
[in] SendFlags
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. NdisCoSendNetBufferLists unterstützt die folgenden Flags:
NDIS_SEND_FLAGS_DISPATCH_LEVEL
Die aktuelle IRQL ist DISPATCH_LEVEL. Weitere Informationen zu diesem Kennzeichen finden Sie unter IRQL Tracking.
NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK
NDIS sollte auf Loopback überprüfen. Standardmäßig werden von NDIS keine Daten in einer Schleife an den Treiber übergeben, der die Sendeanforderung übermittelt hat. Ein übermäßiger Treiber kann dieses Verhalten überschreiben, indem NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK festgelegt wird. Wenn dieses Kennzeichen festgelegt ist, identifiziert NDIS alle NET_BUFFER Strukturen, die Daten enthalten, die den Empfangskriterien für die Bindung entsprechen. NDIS gibt NET_BUFFER Strukturen an, die den Kriterien des übermäßigen Treibers entsprechen. Dieses Flag wirkt sich nicht auf die Überprüfung auf Loopback oder Schleifenrücklauf für andere Bindungen aus.
Rückgabewert
Nichts
Bemerkungen
Nachdem ein CoNDIS-Protokolltreiber NdisCoSendNetBufferListsaufgerufen hat, übermittelt NDIS die NET_BUFFER_LIST Strukturen, die der NetBufferLists-parameter angibt, an den zugrunde liegenden Treiber. MiniportCoSendNetBufferLists Funktion.
Der Protokolltreiber muss jede NET_BUFFER_LIST Struktur aus einem Pool zuordnen, indem eine der folgenden Funktionen aufgerufen wird:
Der Protokolltreiber kann z. B. NET_BUFFER_LIST Strukturen präallocatieren – z. B. in seiner DriverEntry- Routine. Alternativ kann der Protokolltreiber die Strukturen unmittelbar vor dem Aufrufen NdisCoSendNetBufferLists zuordnen und diese dann freigeben, wenn der Sendevorgang abgeschlossen ist. Wenn NDIS eine NET_BUFFER_LIST Struktur an die ProtocolCoSendNetBufferListsComplete--Funktion kann der Protokolltreiber die NET_BUFFER_LIST Struktur und alle zugehörigen Ressourcen für die Wiederverwendung vorbereiten. Wenn Sie die NET_BUFFER_LIST Strukturen wiederverwenden, können Sie eine bessere Leistung erzielen, als die Strukturen an einen Pool zurückzugeben und diese dann für einen anderen Sendevorgang neu zuzuordnen.Ein Protokolltreiber muss das SourceHandle Member jeder NET_BUFFER_LIST Struktur auf denselben Wert festlegen, den er an den NdisVcHandle Parameter übergibt. Das Quellhandle stellt die Informationen bereit, die NDIS benötigt, um die NET_BUFFER_LIST Struktur an den Protokolltreiber zurückzugeben, nachdem der zugrunde liegende Miniporttreiber die NdisMCoSendNetBufferListsComplete Funktion.
Bevor ein Protokolltreiber NdisCoSendNetBufferListsaufruft, kann der Treiber Informationen festlegen, die die Sendeanforderung mit dem NET_BUFFER_LIST_INFO Makro begleiten. Der zugrunde liegende Treiber kann diese Informationen mit dem NET_BUFFER_LIST_INFO Makro abrufen.
Bevor ein Protokolltreiber NdisCoSendNetBufferLists mit einer Liste von NET_BUFFER_LIST Strukturen aufruft, muss der Protokolltreiber sicherstellen, dass die NET_BUFFER_LIST Strukturen in der Reihenfolge eingerichtet werden, in der die Netzwerkdaten gesendet werden sollen.
Sobald ein Protokolltreiber NdisCoSendNetBufferListsaufruft, besitzt er nicht mehr die NET_BUFFER_LIST Strukturen und alle zugeordneten Ressourcen. NDIS ruft die ProtocolCoSendNetBufferListsComplete--Funktion auf, um die Strukturen und Daten an den Protokolltreiber zurückzugeben. NDIS kann die Strukturen und Daten aus mehreren Sendeanforderungen in einer einzigen verknüpften Liste mit NET_BUFFER_LIST Strukturen sammeln, bevor sie die Liste an ProtocolCoSendNetBufferListsCompleteübergibt.
Bis NDIS ProtocolCoSendNetBufferListsCompleteaufruft, ist der aktuelle Status eines vom Protokolltreiber initiierten Sendens für den Protokolltreiber nicht verfügbar. Ein Protokolltreiber gibt vorübergehend den Besitz aller Ressourcen frei, die er für eine Sendeanforderung zugewiesen hat, wenn er NdisCoSendNetBufferListsaufruft. Ein Protokolltreiber sollte niemals versuchen, die NET_BUFFER_LIST Strukturen oder zugeordneten Daten zu untersuchen, nachdem der Treiber NdisCoSendNetBufferListsaufgerufen hat.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Unterstützt für NDIS 6.0-Treiber in Windows Vista. |
| Zielplattform- | Desktop |
| Header- | ndis.h (include Ndis.h) |
| Library | Ndis.lib |
| IRQL- | <=DISPATCH_LEVEL |
| DDI-Complianceregeln | Irql_Connection_Function(ndis) |