estrutura NDK_RESULT_EX (ndkpi.h)

A estrutura NDK_RESULT_EX retorna os resultados de uma operação de solicitação NDK. Ela é idêntica à estrutura NDK_RESULT , exceto que ela tem membros type etypeSpecificCompletionOutput adicionais.

Sintaxe

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;

Membros

Status

O status de conclusão da solicitação NDK.

BytesTransferred

O número de bytes transferidos. O valor desse membro é válido apenas para conclusões de solicitação NdkReceive (NDK_FN_RECEIVE). O membro é indefinido para todas as outras conclusões de solicitação do NDK.

QPContext

Um valor de contexto para todas as solicitações que são postadas em um QP (par de filas). O consumidor do NDK especificou esse ponteiro quando chamou a função NdkCreateQp (NDK_FN_CREATE_QP) para criar o objeto NDK_QP .

RequestContext

Um valor de contexto de solicitação especificado pelo consumidor do NDK quando uma solicitação é postada.

Type

Um NDK_OPERATION_TYPE valor de enumeração que especifica o tipo de operação que está sendo concluída.

ProviderErrorCode

Se Status retornar STATUS_SUCCESS, ProviderErrorCode deverá ser zero.

Se Status não retornar STATUS_SUCCESS, zero indicará que o provedor NDK ainda não dá suporte à funcionalidade ProviderErrorCode ou não forneceu um código de erro. Um valor diferente de zero fornece informações adicionais do provedor para diagnosticar o código status .

ProviderErrorCode usa preenchimento que só está disponível em sistemas de 64 bits. Em sistemas de 32 bits, esse preenchimento não está disponível e, quando ProviderErrorCode retorna zero, ele pode causar ponteiros nulos . Esse problema ocorre quando a memória é lançada incorretamente como o valor do ponteiro TypeSpecificCompletionOutput . É importante observar que o contrato de interface será interrompido se o Provedor usar um layout de memória NDK 2.1 que inclua ProviderErrorCode, enquanto o Consumidor ainda usará um layout de memória NDK 2.0 sem esse novo campo. Portanto, essa estrutura não é mais compatível com versões anteriores para sistemas de 32 bits entre as versões 2.1 e pré-2.1.

TypeSpecificCompletionOutput

A saída de conclusão específica do tipo, se houver. Se o membro Type for NdkOperationTypeReceiveAndInvalidate, esse membro será um campo de 32 bits, que contém o token a ser invalidado antes de sinalizar essa conclusão. Caso contrário, esse membro será indefinido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.40 e posterior.
Servidor mínimo com suporte Windows Server 2012 R2
Cabeçalho ndkpi.h (inclua Ndkpi.h)

Confira também

NDK_FN_CREATE_QP

NDK_OPERATION_TYPE

NDK_QP

NDK_RESULT