Compartilhar via


NDK_FN_CONNECT_WITH_SHARED_ENDPOINT função de retorno de chamada (ndkpi.h)

A função NdkConnectWithSharedEndpoint (NDK_FN_CONNECT_WITH_SHARED_ENDPOINT) inicia uma solicitação de conexão NDK de um endereço local compartilhado para um endereço remoto.

Sintaxe

NDK_FN_CONNECT_WITH_SHARED_ENDPOINT NdkFnConnectWithSharedEndpoint;

NTSTATUS NdkFnConnectWithSharedEndpoint(
  [in]                                      NDK_CONNECTOR *pNdkConnector,
  [in]                                      NDK_QP *pNdkQp,
  [in]                                      NDK_SHARED_ENDPOINT *pNdkSharedEndpoint,
                                            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 de QP (par de filas) NDK (NDK_QP) a ser associado à conexão.

[in] pNdkSharedEndpoint

Um ponteiro para um objeto de ponto de extremidade compartilhado NDK (NDK_SHARED_ENDPOINT) que determina o endereço local da conexão.

pDestAddress

Um endereço de destino. Para AF_INET ou AF_INET6 pDestAddress é o endereço IP de destino e a porta ND de destino.

[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 menor, 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 NdkConnectWithSharedEndpoint retorna um dos seguintes códigos NTSTATUS.

Código de retorno Descrição
STATUS_SUCCESS
A solicitação de conexão foi concluída com êxito.
STATUS_PENDING
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.
STATUS_INSUFFICIENT_RESOURCES
A solicitação falhou devido a recursos insuficientes.
Importante A solicitação pode falhar embutida, bem como de forma assíncrona com esse código status.
 
STATUS_NETWORK_UNREACHABLE
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.
 
STATUS_HOST_UNREACHABLE
A solicitação falhou porque o sistema 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.
 
STATUS_CONNECTION_REFUSED
A solicitação falhou porque o sistema remoto recusou a solicitação de conexão. Isso pode ocorrer devido à falta de ouvinte, limites de lista de pendências ou ao par rejeitar 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.
 
STATUS_IO_TIMEOUT
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 pelos 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.
 
STATUS_ADDRESS_ALREADY_EXISTS
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.
 
Outros códigos de status
Ocorreu um erro.

Comentários

NdkConnectWithSharedEndpoint inicia uma solicitação de conexão de um endereço local compartilhado para um endereço remoto específico. NdkConnectWithSharedEndpoint permite que um consumidor de NDK use o mesmo endereço local (por exemplo, 10.1.1.1:9999) para muitas conexões de saída quando os endereços de destino para as conexões são diferentes.

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

Confira também

Requisitos de tempo de vida do objeto NDKPI

NDK_ADAPTER_INFO

NDK_CONNECTOR

NDK_CONNECTOR_DISPATCH

NDK_FN_GET_CONNECTION_DATA

NDK_FN_REQUEST_COMPLETION

NDK_QP

NDK_SHARED_ENDPOINT