Compartilhar via


Função RxCeSendDatagram (rxce.h)

RxCeSendDatagram envia uma TSDU (unidade de dados do serviço de transporte) ao longo da conexão especificada em um circuito virtual.

Sintaxe

NTSTATUS RxCeSendDatagram(
       IN PRXCE_ADDRESS                hAddress,
  [in] IN PRXCE_CONNECTION_INFORMATION pConnectionInformation,
       IN ULONG                        SendOptions,
  [in] IN PMDL                         pMdl,
  [in] IN ULONG                        SendLength,
  [in] IN PVOID                        pCompletionContext
);

Parâmetros

hAddress

Um ponteiro para o transporte ao longo do qual o TSDU deve ser enviado.

[in] pConnectionInformation

Um ponteiro para informações de conexão que contém o endereço remoto.

SendOptions

Um ponteiro para informações de conexão que contém o endereço remoto.

[in] pMdl

Um ponteiro para o buffer a ser enviado.

[in] SendLength

O comprimento dos dados a serem enviados.

[in] pCompletionContext

O contexto passado de volta para o chamador durante SendCompletion para operações assíncronas. Não que esse parâmetro seja ignorado se o parâmetro Options solicitar uma operação de envio síncrona.

Retornar valor

RxCeSendDatagram retorna STATUS_SUCCESS com êxito ou um dos seguintes códigos de erro em caso de falha:

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
Falha na alocação de memória de pool nãopagado necessária para essa rotina.
STATUS_INVALID_PARAMETER
Um comprimento inválido foi passado no parâmetro SendLength com base nas Opções especificadas.

Comentários

As opções assíncronas e síncronas indicadas no parâmetro Options usado em RxCeSendDatagram distinguem entre duas situações. No caso assíncrono, o controle retorna ao chamador depois que a solicitação é enviada com êxito ao transporte subjacente. Os resultados de qualquer solicitação específica são comunicados novamente usando a rotina de retorno de chamada SendCompletion . O parâmetro pCompletionContext em RxCeSendDatagram é passado de volta na rotina de retorno de chamada para ajudar o chamador a desambiguar as solicitações.

No caso síncrono, a solicitação é enviada para o transporte subjacente e o controle não retorna ao chamador até que a solicitação seja concluída. Observe que, no caso síncrono, o parâmetro pCompletionContext é ignorado e o status retornado corresponde ao status de conclusão das operações.

O benefício das opções assíncronas e síncronas depende do transporte subjacente. Em um ambiente de circuito virtual (TCP, por exemplo), uma opção síncrona implica que o controle não retorna até que os dados cheguem ao servidor. Por outro lado, para transportes orientados a datagrama (UDP, por exemplo), há muito pouca diferença entre as duas opções.

Observe que a Opção síncrona é desconsiderada por enviar datagramas porque os transportes subjacentes não bloqueiam nos envios de datagrama.

RXCE_CONNECTION_INFORMATION é um typedef para uma estrutura TDI_CONNECTION_INFORMATION .

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho rxce.h (include Rxce.h, Tdi.h)
IRQL <= APC_LEVEL

Confira também

MDL

RxCeSend

TDI_CONNECTION_INFORMATION