NDK_FN_SEND Rückruffunktion (ndkpi.h)
Die NdkSend (NDK_FN_SEND) sendet eine Sendeanforderung für ein NDK-Warteschlangenpaar (QP).
Syntax
NDK_FN_SEND NdkFnSend;
NTSTATUS NdkFnSend(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags
)
{...}
Parameter
[in] pNdkQp
Ein Zeiger auf ein NDK-Warteschlangenpaar (QP)-Objekt (NDK_QP).
[in, optional] RequestContext
Ein Kontextwert, der im RequestContext Member der NDK_RESULT-Struktur für diese Anforderung zurückgegeben werden soll.
pSgl
Ein Array von SGE-Strukturen (NDK_SGE), die die Puffer darstellen, die die zu sendenden Daten enthalten.
[in] nSge
Die Anzahl der SGE-Strukturen im Array, das im pSgl Parameter angegeben ist.
[in] Flags
Ein bitweises ODER von Flags, die die zulässigen Vorgänge angibt. Die folgenden Flags werden unterstützt:
Wert | Bedeutung |
---|---|
|
Gibt an, dass der erfolgreiche Abschluss dieser Anforderung kein Abschlussereignis in der Ausgehenden Vervollständigungswarteschlange generiert. Anforderungen, die fehlschlagen, generieren jedoch ein Ereignis in der Abschlusswarteschlange. |
|
Gibt an, dass alle vorherigen Leseanforderungen abgeschlossen sein müssen, bevor die Hardware mit der Verarbeitung dieser Anforderung beginnt. |
|
Gibt an, dass die Abschlusswarteschlange für den Peer eine Benachrichtigung generiert. Weitere Informationen zu NDK_OP_FLAG_SEND_AND_SOLICIT_EVENTfinden Sie im Abschnitt "Hinweise". |
|
Gibt an, dass der von den SGEs referenzierte Speicher inline übertragen werden soll. Außerdem ist der MemoryRegionToken Wert in den NDK_SGE Einträgen möglicherweise ungültig. Inlineanforderungen müssen die Anzahl der Einträge in der SGE-Liste nicht auf den MaxInitiatorRequestSge Wert beschränken, der beim Erstellen des Warteschlangenpaars angegeben wird. Die Inlinemenge des übertragenen Arbeitsspeichers muss sich innerhalb der Inlinedatengrenzen des Warteschlangenpaars befinden. |
|
Gibt dem NDK-Anbieter an, dass er die Anforderung an die Hardware zur Verarbeitung zurückstellen kann. Weitere Informationen zu diesem Flag finden Sie unter NDKPI Deferred Processing Scheme.
Hinweis Dieses Flag wird nur in NDKPI 1.2 (Windows Server 2012 R2) und höher unterstützt. |
Rückgabewert
Die NdkSend Funktion gibt einen der folgenden NTSTATUS-Codes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Sendeanforderung wurde erfolgreich gepostet. Ein Vervollständigungseintrag wird an die Abschlusswarteschlange (CQ) in die Warteschlange eingereiht, wenn die Arbeitsanforderung abgeschlossen ist. |
|
Das Warteschlangenpaar (QP) ist nicht verbunden. |
|
Fehler. |
Bemerkungen
NdkSend sendet eine Sendeanforderung für ein Warteschlangenpaar (QP).
Sie können das kennzeichen NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT verwenden, wenn Sie mehrere, verwandte Sendeanforderungen ausstellen. Legen Sie dieses Kennzeichen für die letzte Anforderung in der Gruppe verwandter Sendeanforderungen fest.
Ein NDK-Consumer kann dieses Kennzeichen verwenden, wenn mehrere, verwandte Sendeanforderungen ausgestellt werden. Der NDK-Consumer legt dieses Kennzeichen nur für die letzte, verknüpfte Sendeanforderung fest. Der Peer empfängt alle Sendeanforderungen als normal. Wenn der Peer jedoch die letzte Sendeanforderung empfängt (die Anforderung mit dem NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT Flagsatz), generiert die Abschlusswarteschlange für den Peer eine Benachrichtigung. Die Benachrichtigung wird generiert, nachdem die Empfangsanforderung abgeschlossen wurde. Dieses Flag hat keine Bedeutung für den Empfänger (Peer), es sei denn, der Empfänger hat zuvor die NdkArmCq- (NDK_FN_ARM_CQ) -Funktion aufgerufen, wobei der Benachrichtigungstyp auf NDK_CQ_NOTIFY_SOLICITEDfestgelegt ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Keine unterstützt,in NDIS 6.30 und höher unterstützt. |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Fenster |
Header- | ndkpi.h (include Ndkpi.h) |
IRQL- | <=DISPATCH_LEVEL |
Siehe auch
NDKPI Verzögertes Verarbeitungsschema