NDK_RESULT_EX structure (ndkpi.h)
La structure NDK_RESULT_EX retourne les résultats d’une opération de requête NDK. Elle est identique à la structure NDK_RESULT , sauf qu’elle a des membres Type et TypeSpecificCompletionOutput supplémentaires.
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;
Status
L’achèvement de la requête NDK status.
BytesTransferred
Nombre d'octets transférés. La valeur de ce membre est valide uniquement pour les achèvements de requête NdkReceive (NDK_FN_RECEIVE). Le membre n’est pas défini pour toutes les autres saisies de requêtes 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 égal à zéro.
Si Status ne retourne pas STATUS_SUCCESS, zéro indique que le fournisseur NDK ne prend pas encore en charge la fonctionnalité ProviderErrorCode ou n’a pas encore fourni de code d’erreur. Une valeur différente de zéro fournit des informations supplémentaires sur le fournisseur pour diagnostiquer le code d’état .
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 des pointeurs null . Ce problème se produit lorsque la mémoire est mal convertie en tant que valeur pour le pointeur 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 rétrocompatible 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.
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.40 et versions ultérieures. |
Serveur minimal pris en charge | Windows Server 2012 R2 |
En-tête | ndkpi.h (incluez Ndkpi.h) |