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 |
---|---|
|
Falha na alocação de memória de pool nãopagado necessária para essa rotina. |
|
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 |