NDK_FN_CREATE_QP Rückruffunktion (ndkpi.h)

Die Funktion NdkCreateQp (NDK_FN_CREATE_QP) erstellt ein QP-Objekt (NDK-Warteschlangenpaar).

Syntax

NDK_FN_CREATE_QP NdkFnCreateQp;

NTSTATUS NdkFnCreateQp(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in, optional] PVOID QPContext,
  [in]           ULONG ReceiveQueueDepth,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [in]           ULONG MaxInitiatorRequestSge,
  [in]           ULONG InlineDataSize,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_QP **ppNdkQp
)
{...}

Parameter

[in] pNdkPd

Ein Zeiger auf ein NDK-Schutzdomänenobjekt (PD) (NDK_PD).

[in] pReceiveCq

Ein Zeiger auf eine Vervollständigungswarteschlange (CQ), die für Die Vervollständigung von Empfangsanforderungen (NDK_CQ) verwendet werden soll.

[in] pInitiatorCq

Ein Zeiger auf ein CQ, das für Den Abschluss der Initiatoranforderung verwendet werden soll.

[in, optional] QPContext

Ein Kontextwert, der im QPContext-Member der NDK_RESULT-Struktur für alle Anforderungen zurückgegeben werden soll, die über diesen QP bereitgestellt werden.

[in] ReceiveQueueDepth

Die maximale Anzahl von Empfangsanforderungen, die über den QP ausstehen können. Dieser Wert muss kleiner oder gleich dem Wert im MaxReceiveQueueDepth-Element der NDK_ADAPTER_INFO-Struktur sein.

[in] InitiatorQueueDepth

Die maximale Anzahl von Initiatoranforderungen, die über den QP ausstehen können. Dieser Wert muss kleiner oder gleich dem Wert im MaxInitiatorQueueDepth-Element der NDK_ADAPTER_INFO-Struktur sein.

[in] MaxReceiveRequestSge

Die maximale Anzahl von SGEs, die in einer einzelnen Empfangsanforderung unterstützt werden können. Dieser Wert muss kleiner oder gleich dem Wert im MaxReceiveRequestSge-Element der NDK_ADAPTER_INFO-Struktur sein.

[in] MaxInitiatorRequestSge

Die maximale Anzahl von SGEs, die in einer einzelnen Initiatoranforderung unterstützt werden können. Dieser Wert muss kleiner oder gleich dem Wert im MaxInitiatorRequestSge-Element der NDK_ADAPTER_INFO-Struktur sein.

[in] InlineDataSize

Die maximale Menge an Inlinedaten in Bytes, die in einer einzelnen Sende- oder Schreibanforderung gesendet werden können. Dieser Wert muss kleiner oder gleich dem Wert im MaxInlineDataSize-Element der NDK_ADAPTER_INFO-Struktur sein.

[in] CreateCompletion

Ein Zeiger auf eine NdkCreateCompletion-Funktion (NDK_FN_CREATE_COMPLETION), die die Erstellung eines NDK-Objekts abschließt.

[in, optional] RequestContext

Ein Kontextwert, den der NDK-Anbieter an die NdkCreateCompletion-Funktion zurückgibt, die im CreateCompletion-Parameter angegeben ist.

ppNdkQp

Ein Zeiger auf ein erstelltes QP-Objekt (NDK_QP) wird an diesem Speicherort zurückgegeben, wenn die Anforderung erfolgreich ist, ohne STATUS_PENDING zurückzugeben. Wenn die Anforderung STATUS_PENDING zurückgibt, wird dieser Parameter ignoriert, und das erstellte Objekt wird mit dem Rückruf zurückgegeben, der im CreateCompletion-Parameter angegeben ist.

Rückgabewert

Die NdkCreateQp-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Das QP-Objekt wurde erfolgreich erstellt und mit dem Parameter *ppNdkQp zurückgegeben.
STATUS_PENDING
Der Vorgang ist ausstehend und wird später abgeschlossen. Der Anbieter ruft die im CreateCompletion-Parameter (NDK_FN_CREATE_COMPLETION) angegebene Funktion auf, um den ausstehenden Vorgang abzuschließen.
STATUS_INVALID_PARAMETER
Die Anforderung ist fehlgeschlagen, weil die angeforderten ReceiveQueueDepth-, InitiatorQueueDepth-, MaxReceiveRequestSge-, MaxInitiatorRequestSge- oder InlineDataSize-Instanzen nicht innerhalb der in der NDK_ADAPTER_INFO-Struktur angegebenen Grenzwerte liegen.
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Anforderung aufgrund unzureichender Ressourcen.
Wichtig Die Anforderung kann sowohl inline als auch asynchron mit diesem status Code fehlschlagen.
 
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Die NdkCreateQp-Funktion erstellt ein NDK-Warteschlangenpaar (QP)-Objekt. Ein QP besteht aus einer Empfangswarteschlange und einer Initiatorwarteschlange. Die Empfangswarteschlange wird verwendet, um Empfangsanforderungen zu posten. Eine Initiatorwarteschlange wird zum Initiieren von Sende-, Bindungs-, Schnellregistrierungs-, Lese-, Schreib- und Ungültigschreibungsanforderungen verwendet.

Wenn die Funktion STATUS_SUCCESS zurückgibt, wird das erstellte Objekt im ppNdkQp-Parameter zurückgegeben. Wenn NdkCreateQp STATUS_PENDING zurückgibt, wird das erstellte Objekt von der NdkCreateCompletion-Funktion (NDK_FN_CREATE_COMPLETION) zurückgegeben, die im CreateCompletion-Parameter angegeben ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Keine unterstützt, unterstützt in NDIS 6.30 und höher.
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Windows
Kopfzeile ndkpi.h (Ndkpi.h einschließen)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

Anforderungen an die Lebensdauer des NDKPI-Objekts

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT