NDK_RESULT_EX-Struktur (ndkpi.h)

Die NDK_RESULT_EX-Struktur gibt die Ergebnisse für einen NDK-Anforderungsvorgang zurück. Sie ist identisch mit der NDK_RESULT-Struktur, mit der Ausnahme, dass sie über zusätzliche Type- und TypeSpecificCompletionOutput-Member verfügt.

Syntax

typedef struct _NDK_RESULT_EX {
  NTSTATUS           Status;
  ULONG              BytesTransferred;
  PVOID              QPContext;
  PVOID              RequestContext;
  NDK_OPERATION_TYPE Type;
  ULONG              ProviderErrorCode;
  ULONG_PTR          TypeSpecificCompletionOutput;
} NDK_RESULT_EX;

Member

Status

Der NDK-Anforderungsabschluss status.

BytesTransferred

Die Anzahl der übertragenen Bytes. Der Wert dieses Members ist nur für NdkReceive-Anforderungsabschlüsse (NDK_FN_RECEIVE) gültig. Der Member ist für alle anderen NDK-Anforderungsabschlüsse undefiniert.

QPContext

Ein Kontextwert für alle Anforderungen, die über ein Warteschlangenpaar (QP) bereitgestellt werden. Der NDK-Consumer hat diesen Zeiger angegeben, als er die Funktion NdkCreateQp (NDK_FN_CREATE_QP) aufgerufen hat, um das NDK_QP-Objekt zu erstellen.

RequestContext

Ein Anforderungskontextwert, der vom NDK-Consumer angegeben wird, wenn eine Anforderung gepostet wird.

Type

Ein NDK_OPERATION_TYPE Enumerationswert, der den Typ des abgeschlossenen Vorgangs angibt.

ProviderErrorCode

Wenn Status STATUS_SUCCESS zurückgibt, muss ProviderErrorCodenull sein.

Wenn Status nicht STATUS_SUCCESS zurückgibt, gibt null an, dass der NDK-Anbieter die ProviderErrorCode-Funktion noch nicht unterstützt oder keinen Fehlercode bereitgestellt hat. Ein Wert ungleich 0 (null ) stellt zusätzliche Anbieterinformationen bereit, um den Statuscode zu diagnostizieren.

ProviderErrorCode verwendet Auffüllungen, die nur auf 64-Bit-Systemen verfügbar sind. Auf 32-Bit-Systemen ist diese Auffüllung nicht verfügbar, und wenn ProviderErrorCodenull zurückgibt, kann dies NULL-Zeiger verursachen. Dieses Problem tritt auf, wenn Arbeitsspeicher falsch als Wert für den TypeSpecificCompletionOutput-Zeiger umgewandelt wird. Es ist wichtig zu beachten, dass der Schnittstellenvertrag unterbrochen wird, wenn der Anbieter ein NDK 2.1-Speicherlayout verwendet, das ProviderErrorCode enthält, während der Consumer weiterhin ein NDK 2.0-Speicherlayout ohne dieses neue Feld verwendet. Daher ist diese Struktur für 32-Bit-Systeme zwischen Version 2.1 und 2.1 nicht mehr abwärtskompatibel.

TypeSpecificCompletionOutput

Die typspezifische Vervollständigungsausgabe, falls vorhanden. Wenn das Type-ElementNdkOperationTypeReceiveAndInvalidate ist, handelt es sich bei diesem Element um ein 32-Bit-Feld, das das Token enthält, das vor dem Signalisieren dieser Vervollständigung für ungültig erklärt werden soll. Andernfalls ist dieser Member nicht definiert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.40 und höher.
Unterstützte Mindestversion (Server) Windows Server 2012 R2
Kopfzeile ndkpi.h (Ndkpi.h einschließen)

Weitere Informationen

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT