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