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 las finalizaciones de solicitud de NdkReceive (NDK_FN_RECEIVE). El miembro no está definido para todas las demás finalizaciones de solicitudes NDK.
QPContext
Valor de contexto para todas las solicitudes que se publican a través de un par de colas (QP). El consumidor de 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 aún la funcionalidad ProviderErrorCode o no proporcionó un código de error. Un valor distinto de cero proporciona información adicional del proveedor para diagnosticar el código de estado .
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 NULOs . 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 las versiones 2.1 y anteriores a la 2.1.
TypeSpecificCompletionOutput
Salida de finalización específica del tipo, si existe. Si el miembro Type es NdkOperationTypeReceiveAndInvalidate, este miembro es un campo de 32 bits, que contiene el token que se va a invalidar antes de indicar esta finalización. De lo contrario, este miembro no está definido.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.40 y versiones posteriores. |
Servidor mínimo compatible | Windows Server 2012 R2 |
Encabezado | ndkpi.h (incluya Ndkpi.h) |