NDK_FN_CREATE_CQ Rückruffunktion (ndkpi.h)

Die Funktion NdkCreateCq (NDK_FN_CREATE_CQ) erstellt ein CQ-Objekt (NDK-Vervollständigungswarteschlange).

Syntax

NDK_FN_CREATE_CQ NdkFnCreateCq;

NTSTATUS NdkFnCreateCq(
  [in]           NDK_ADAPTER *pNdkAdapter,
  [in]           ULONG CqDepth,
  [in]           NDK_FN_CQ_NOTIFICATION_CALLBACK CqNotification,
  [in, optional] PVOID CqNotificationContext,
  [in, optional] GROUP_AFFINITY *Affinity,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_CQ **ppNdkCq
)
{...}

Parameter

[in] pNdkAdapter

Ein Zeiger auf ein NDK-Adapterobjekt (NDK_ADAPTER).

[in] CqDepth

Die maximale Anzahl von Vervollständigungseinträgen, die der CQ enthalten kann. Dieser Wert muss kleiner oder gleich dem MaxCqDepth-Wert sein, der in der NDK_ADAPTER_INFO-Struktur angegeben ist.

[in] CqNotification

Ein Zeiger auf die Funktion NdkCqNotificationCallback (NDK_FN_CQ_NOTIFICATION_CALLBACK), die der Anbieter verwendet, um den Consumer zu benachrichtigen, wenn Anforderungsvervollständigungen in der CQ-Warteschlange stehen. Der Anbieter ruft NdkCqNotificationCallback nur dann auf, wenn der Consumer die Benachrichtigung mit der Funktion NdkArmCq (NDK_FN_ARM_CQ) ausgibt.

[in, optional] CqNotificationContext

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

[in, optional] Affinity

Eine Affinitätsmaske (GROUP_AFFINITY), die bevorzugte Prozessoren bereitstellt, die der Consumer zum Ausführen der NdkCqNotificationCallback-Rückrufe auswählen würde. Anbieter sollten die Prozessoreinstellungen berücksichtigen, wenn die zugrunde liegende Hardware dies zulässt, aber Verbraucher können nicht davon ausgehen, dass NdkCqNotificationCallback-Rückrufe nur auf den bevorzugten Prozessoren erfolgen. Legen Sie Affinität auf NULL fest, wenn keine bevorzugten Prozessoren vorhanden sind.

[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.

ppNdkCq

Ein Zeiger auf ein Vervollständigungswarteschlangenobjekt (NDK_CQ) wird an diesem Speicherort zurückgegeben, wenn die Anforderung erfolgreich ist, ohne STATUS_PENDING zurückzugeben. Wenn NdkCreateCq 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 NDK_FN_CREATE_CQ-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Das CQ-Objekt wurde erfolgreich erstellt und mit dem Parameter *ppNdkCq zurückgegeben.
STATUS_PENDING
Der Vorgang steht aus 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 der angeforderte CqDepth-Wert größer als der MaxCqDepth-Wert ist, der in der NDK_ADAPTER_INFO-Struktur angegeben ist.
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 NdkCreateCq-Funktion erstellt ein CQ-Objekt (NDK-Vervollständigungswarteschlange). Wenn die Funktion STATUS_SUCCESS zurückgibt, wird das erstellte Objekt im ppNdkCq-Parameter zurückgegeben. Wenn NdkCreateCq 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, wird in NDIS 6.30 und höher unterstützt.
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Windows
Kopfzeile ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

GROUP_AFFINITY

Anforderungen an die Lebensdauer des NDKPI-Objekts

NDK_ADAPTER

NDK_ADAPTER_DISPATCH

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_ARM_CQ

NDK_FN_CQ_NOTIFICATION_CALLBACK

NDK_FN_CREATE_COMPLETION