função de retorno de chamada NDK_FN_CONNECT (ndkpi.h)
A função NdkConnect (NDK_FN_CONNECT) inicia uma solicitação de conexão NDK.
Sintaxe
NDK_FN_CONNECT NdkFnConnect;
NTSTATUS NdkFnConnect(
[in] NDK_CONNECTOR *pNdkConnector,
[in] NDK_QP *pNdkQp,
const PSOCKADDR pSrcAddress,
[in] ULONG SrcAddressLength,
[in] const PSOCKADDR pDestAddress,
[in] ULONG DestAddressLength,
[in] ULONG InboundReadLimit,
[in] ULONG OutboundReadLimit,
[_In_reads_bytes_opt_(PrivateDataLength)] const PVOID pPrivateData,
[in] ULONG PrivateDataLength,
[in] NDK_FN_REQUEST_COMPLETION RequestCompletion,
[in, optional] PVOID RequestContext
)
{...}
Parâmetros
[in] pNdkConnector
Um ponteiro para um objeto de conector NDK (NDK_CONNECTOR).
[in] pNdkQp
Um ponteiro para um objeto QP (par de fila) NDK (NDK_QP) a ser associado à conexão.
pSrcAddress
Um endereço de origem. Para AF_INET ou AF_INET6 pSrcAddress é o endereço IP de origem e a porta ND de origem.
[in] SrcAddressLength
O tamanho, em bytes, dos dados de endereço de origem no parâmetro pSrcAddress .
[in] pDestAddress
Um endereço de destino. Para AF_INET ou AF_INET6 pDestAddress é o endereço IP de destino e a porta ND de origem .
[in] DestAddressLength
O tamanho, em bytes, dos dados de endereço de destino no parâmetro pDestAddress .
[in] InboundReadLimit
O número máximo de operações de leitura em andamento fornecidas pelo consumidor para permitir no QP. Se o provedor subjacente tiver um valor MaxInboundReadLimit menor na estrutura NDK_ADAPTER_INFO , o provedor limitará o valor fornecido pelo consumidor ao máximo do provedor. Se o par tiver um valor OutboundReadLimit mais baixo, o provedor usará esse valor como o InboundReadLimit efetivo. O consumidor pode recuperar o InboundReadLimit efetivo chamando a função NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).
[in] OutboundReadLimit
O número máximo fornecido pelo consumidor de operações de leitura em andamento de saída para permitir no QP. Se o provedor subjacente tiver um valor MaxOutboundReadLimit menor na estrutura NDK_ADAPTER_INFO , o provedor limitará o valor fornecido pelo consumidor ao máximo do provedor. Se o par tiver um InboundReadLimit menor, o provedor usará esse valor como o OutboundReadLimit efetivo. O consumidor pode recuperar o OutboundReadLimit efetivo chamando a função NdkGetConnectionData (NDK_FN_GET_CONNECTION_DATA).
[_In_reads_bytes_opt_(PrivateDataLength)] pPrivateData
Um ponteiro para dados privados enviados com a solicitação de conexão.
[in] PrivateDataLength
O comprimento, em bytes, dos dados privados fornecidos no parâmetro pPrivateData .
[in] RequestCompletion
Um ponteiro para uma rotina de retorno de chamada de conclusão de solicitação NdkRequestCompletion (NDK_FN_REQUEST_COMPLETION).
[in, optional] RequestContext
Um valor de contexto a ser passado para o parâmetro Context da função de retorno de chamada especificada no parâmetro RequestCompletion .
Retornar valor
A função NdkConnect retorna um dos seguintes códigos NTSTATUS.
Código de retorno | Descrição |
---|---|
|
A solicitação de conexão foi concluída com êxito. |
|
A operação está pendente e será concluída posteriormente. O driver chamará a função RequestCompletion (NDK_FN_REQUEST_COMPLETION) especificada para concluir a operação pendente. |
|
Falha na solicitação devido a recursos insuficientes.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque a rede remota não estava acessível. A tentativa de conexão pode ser repetida.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque o sistema de host remoto não estava acessível. A tentativa de conexão pode ser repetida.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque o sistema remoto recusou a solicitação de conexão. Isso pode ser devido à falta de ouvinte, limites de lista de pendências ou ao par rejeitando ativamente a solicitação de conexão. A tentativa de conexão pode ser repetida.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque a solicitação de conexão atingiu o tempo limite. A tentativa de conexão pode ser repetida. Os valores de tempo limite são selecionados por provedores diretos de rede para corresponder às respectivas características de rede.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque o endereço local especificado já está em uso.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque o endereço local especificado não é um endereço válido para o adaptador.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque o consumidor especificou um número de porta local de zero e o provedor direto de rede não pôde alocar uma porta do espaço de porta efêmero (portas 49152-65535).
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
A solicitação falhou porque já existe uma conexão com a combinação de endereço local, porta local, endereço remoto e porta remota.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
|
|
Ocorreu um erro. |
Comentários
O NdkConnect inicia uma solicitação de conexão de um endereço local para um endereço remoto.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Nenhum com suporte, com suporte no NDIS 6.30 e posterior. |
Servidor mínimo com suporte | Windows Server 2012 |
Plataforma de Destino | Windows |
Cabeçalho | ndkpi.h (inclua Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |