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