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 do conector NDK (NDK_CONNECTOR).

[in] pNdkQp

Um ponteiro para um objeto QP (par de fila) 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 pDestAddress. parâmetro.

[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 de MaxInboundReadLimit inferior 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 inboundReadLimitefetivo. 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 de 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 InboundReadLimitinferior, o provedor usará esse valor como o OutboundReadLimit efetivo. O consumidor pode recuperar o OutboundReadLimit de 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.

Valor de retorno

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 de 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 de 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 de status.
 
STATUS_CONNECTION_REFUSED
A solicitação falhou porque o sistema remoto recusou a solicitação de conexão. Isso pode ser devido à falta de ouvinte, limites de backlog ou ao par que rejeita 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 de 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 do Network Direct 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 de 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 de status.
 
Outros códigos de status
Ocorreu um erro.

Observações

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 do 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 das conexões são diferentes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Nenhum com suporte, com suporte no NDIS 6.30 e posterior.
servidor com suporte mínimo Windows Server 2012
da Plataforma de Destino Windows
cabeçalho ndkpi.h (inclua Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Consulte 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