PFN_WSK_SEND função de retorno de chamada (wsk.h)
A função WskSend envia dados por meio de um soquete de fluxo ou orientado por conexão para um endereço de transporte remoto.
Sintaxe
PFN_WSK_SEND PfnWskSend;
NTSTATUS PfnWskSend(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
[in] ULONG Flags,
[in, out] PIRP Irp
)
{...}
Parâmetros
[in] Socket
Um ponteiro para uma estrutura WSK_SOCKET que especifica o objeto de soquete para o soquete sobre o qual enviar os dados.
[in] Buffer
Um ponteiro para uma estrutura de WSK_BUF inicializada que descreve o buffer de dados que contém os dados que estão sendo enviados pelo soquete.
[in] Flags
Um valor ULONG que contém um OR bit a bit de uma combinação dos seguintes sinalizadores:
WSK_FLAG_NODELAY
Direciona o transporte subjacente para enviar imediatamente os dados e quaisquer dados enfileirados anteriormente para o aplicativo remoto sem demora.
Esse sinalizador é compatível com o protocolo de transporte TCP/IP da Microsoft. Esse sinalizador pode não ter suporte de outros protocolos de transporte.
[in, out] Irp
Um ponteiro para um IRP alocado pelo chamador que o subsistema WSK usa para concluir a operação de envio de forma assíncrona. Para obter mais informações sobre como usar IRPs com funções WSK, consulte Usando IRPs com funções de kernel Winsock.
Retornar valor
WskSend retorna um dos seguintes códigos NTSTATUS:
Código de retorno | Descrição |
---|---|
|
Os dados foram enviados com êxito pelo soquete. O IRP será concluído com êxito status. O campo IoStatus.Information do IRP contém o número de bytes que foram enviados. |
|
O subsistema WSK não pôde enviar os dados pelo soquete imediatamente. O subsistema WSK concluirá o IRP depois de enviar os dados pelo soquete. O status da operação de envio será retornado no campo IoStatus.Status do IRP. Se a operação for bem-sucedida, o campo IoStatus.Information do IRP conterá o número de bytes que foram enviados. |
|
O soquete não é mais funcional. O IRP será concluído com status de falha. O aplicativo WSK deve chamar a função WskCloseSocket para fechar o soquete o mais rápido possível. |
|
Não há suporte para um sinalizador especificado pelo transporte de rede subjacente. |
|
Ocorreu um erro. O IRP será concluído com status de falha. |
Comentários
Um aplicativo WSK pode chamar a função WskSend somente em um soquete de fluxo ou orientado a conexão que tenha sido conectado anteriormente a um endereço de transporte remoto. Um soquete orientado a conexão é conectado a um endereço de transporte remoto por um dos seguintes métodos:
- O aplicativo WSK conecta o soquete chamando a função WskConnect .
- O aplicativo WSK cria, associa e conecta o soquete chamando a função WskSocketConnect .
- O subsistema WSK conecta o soquete quando o aplicativo WSK aceita uma solicitação de conexão de entrada em um soquete de escuta.
O subsistema WSK não executa nenhum buffer de dados quando envia dados por meio de um soquete. Portanto, uma chamada para a função WskSend não será concluída pelo subsistema WSK até que todos os dados sejam realmente enviados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Universal |
Cabeçalho | wsk.h (inclua Wsk.h) |
IRQL | <= DISPATCH_LEVEL |