Partager via


structure NDK_RESULT_EX (ndkpi.h)

La structure NDK_RESULT_EX retourne les résultats d’une opération de requête NDK. Il est identique à la structure NDK_RESULT, sauf qu’elle a des membres type supplémentaires et TypeSpecificCompletionOutput.

Syntaxe

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;

Membres

Status

État de saisie semi-automatique de la demande NDK.

BytesTransferred

Nombre d’octets transférés. La valeur de ce membre n’est valide que pour NdkReceive (NDK_FN_RECEIVE) les achèvements de requête. Le membre n’est pas défini pour toutes les autres saisies de requête NDK.

QPContext

Valeur de contexte pour toutes les demandes publiées sur une paire de files d’attente (QP). Le consommateur NDK a spécifié ce pointeur lorsqu’il a appelé la fonction NdkCreateQp (NDK_FN_CREATE_QP) pour créer l’objet NDK_QP.

RequestContext

Valeur de contexte de requête spécifiée par le consommateur NDK lorsqu’une demande est publiée.

Type

Valeur d’énumération NDK_OPERATION_TYPE qui spécifie le type d’opération en cours d’exécution.

ProviderErrorCode

Si Status retourne STATUS_SUCCESS, ProviderErrorCode doit être zéro.

Si 'état ne retourne pas STATUS_SUCCESS, zéro indique que le fournisseur NDK ne prend pas en charge la fonctionnalité ProviderErrorCode encore ou n’a pas encore fourni de code d’erreur. Une valeur non zéro fournit des informations supplémentaires sur le fournisseur pour diagnostiquer le code Status.

ProviderErrorCode utilise le remplissage disponible uniquement sur les systèmes 64 bits. Sur les systèmes 32 bits, ce remplissage n’est pas disponible et lorsque ProviderErrorCode retourne zéro, il peut provoquer pointeurs null. Ce problème se produit lorsque la mémoire est castée de manière incorrecte en tant que valeur du pointeur type TypeSpecificCompletionOutput. Il est important de noter que le contrat d’interface est rompu si le fournisseur utilise une disposition de mémoire NDK 2.1 qui inclut ProviderErrorCode, tandis que le consommateur utilise toujours une disposition de mémoire NDK 2.0 sans ce nouveau champ. Par conséquent, cette structure n’est plus compatible descendante pour les systèmes 32 bits entre les versions 2.1 et antérieures à 2.1.

TypeSpecificCompletionOutput

Sortie d’achèvement spécifique au type, le cas échéant. Si le membre Type est NdkOperationTypeReceiveAndInvalidate, ce membre est un champ 32 bits, qui contient le jeton à invalider avant de signaler cette fin. Sinon, ce membre n’est pas défini.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.40 et versions ultérieures.
serveur minimum pris en charge Windows Server 2012 R2
d’en-tête ndkpi.h (include Ndkpi.h)

Voir aussi

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT