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) |