Compartir a través de


estructura NDK_RESULT_EX (ndkpi.h)

La estructura NDK_RESULT_EX devuelve los resultados de una operación de solicitud NDK. Es idéntico a la estructura NDK_RESULT, salvo que tiene miembros Type y TypeSpecificCompletionOutput adicionales.

Sintaxis

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;

Miembros

Status

Estado de finalización de la solicitud NDK.

BytesTransferred

Número de bytes transferidos. El valor de este miembro solo es válido para NdkReceive (NDK_FN_RECEIVE) las finalizaciones de solicitud. El miembro no está definido para todas las demás finalizaciones de solicitudes de NDK.

QPContext

Valor de contexto para todas las solicitudes que se publican a través de un par de colas (QP). El consumidor NDK especificó este puntero cuando llamó a la función NdkCreateQp (NDK_FN_CREATE_QP) para crear el objeto NDK_QP.

RequestContext

Valor de contexto de solicitud especificado por el consumidor de NDK cuando se publica una solicitud.

Type

Valor de enumeración NDK_OPERATION_TYPE que especifica el tipo de operación que se está completando.

ProviderErrorCode

Si Status devuelve STATUS_SUCCESS, ProviderErrorCode debe ser cero.

Si status no devuelve STATUS_SUCCESS, cero indica que el proveedor NDK no admite la funcionalidad ProviderErrorCode o no proporcionó un código de error. Un valor de distinto de cero proporciona información adicional del proveedor para diagnosticar el código estado de.

ProviderErrorCode usa relleno que solo está disponible en sistemas de 64 bits. En los sistemas de 32 bits, este relleno no está disponible y, cuando ProviderErrorCode devuelve cero, puede provocar punteros NULL. Este problema se produce cuando la memoria se convierte incorrectamente como el valor del puntero TypeSpecificCompletionOutput. Es importante tener en cuenta que el contrato de interfaz se interrumpe si el proveedor usa un diseño de memoria NDK 2.1 que incluye ProviderErrorCode, mientras que el consumidor sigue usando un diseño de memoria NDK 2.0 sin este nuevo campo. Por lo tanto, esta estructura ya no es compatible con versiones anteriores para sistemas de 32 bits entre 2.1 y versiones anteriores a la 2.1.

TypeSpecificCompletionOutput

Salida de finalización específica del tipo, si existe. Si el miembro type de es NdkOperationTypeReceiveAndInvalidate, este miembro es un campo de 32 bits, que contiene el token que se va a invalidar antes de señalar esta finalización. De lo contrario, este miembro no está definido.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite en NDIS 6.40 y versiones posteriores.
servidor mínimo admitido Windows Server 2012 R2
encabezado de ndkpi.h (incluya Ndkpi.h)

Consulte también

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT