Compartilhar via


PFN_WSK_INSPECT_COMPLETE função de retorno de chamada (wsk.h)

A função WskInspectComplete conclui a inspeção de uma solicitação de conexão de entrada pendente anteriormente recebida em um soquete de escuta que tem o modo de aceitação condicional habilitado.

Sintaxe

PFN_WSK_INSPECT_COMPLETE PfnWskInspectComplete;

NTSTATUS PfnWskInspectComplete(
  [in]      PWSK_SOCKET ListenSocket,
  [in]      PWSK_INSPECT_ID InspectID,
  [in]      WSK_INSPECT_ACTION Action,
  [in, out] PIRP Irp
)
{...}

Parâmetros

[in] ListenSocket

Um ponteiro para uma estrutura WSK_SOCKET. Esse ponteiro especifica o soquete de escuta no qual o aplicativo WSK recebeu a solicitação de conexão de entrada que está inspecionando.

[in] InspectID

Um ponteiro para uma estrutura WSK_INSPECT_ID. O conteúdo da estrutura identifica a solicitação de conexão específica que o aplicativo WSK está inspecionando.

[in] Action

Um valor que especifica se o aplicativo WSK aceita ou rejeita a solicitação de conexão de entrada. Um aplicativo WSK deve especificar WskInspectAccept ou WskInspectReject para esse parâmetro.

[in, out] Irp

Um ponteiro para um IRP alocado por chamador que o subsistema WSK usa para concluir a operação de retomada de forma assíncrona. Para obter mais informações sobre como usar IRPs com funções do WSK, consulte Usando IRPs com funções de kernel winsock.

Valor de retorno

WskInspectComplete retorna um dos seguintes códigos NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS
A operação de inspeção pendente anteriormente foi retomada com êxito. O IRP será concluído com o status de êxito.
STATUS_PENDING
O subsistema do WSK não pôde retomar a operação de inspeção imediatamente. O subsistema WSK concluirá o IRP depois de retomar a operação de inspeção da solicitação de conexão de entrada. O status da retomada da operação de inspeção será retornado no campo IoStatus.Status do IRP.
STATUS_FILE_FORCED_CLOSED
O soquete não está mais funcional. O IRP será concluído com o status de falha. O aplicativo WSK deve chamar a função WskCloseSocket para fechar o soquete o mais rápido possível.
Outros códigos de status
Ocorreu um erro. O IRP será concluído com o status de falha.

Observações

Um aplicativo WSK chama a função WskInspectComplete para concluir a inspeção de uma solicitação de conexão de entrada para a qual a função de retorno de chamada de evento WskInspectEvent do aplicativo retornada anteriormente WskInspectPend.

Um aplicativo WSK pode chamar a função WskInspectComplete somente em um soquete de escuta que tenha o modo de aceitação condicional habilitado. Um aplicativo WSK pode habilitar o modo de aceitação condicional em um soquete de escuta habilitando a opção de soquete SO_CONDITIONAL_ACCEPT. Para obter mais informações sobre como aceitar condicionalmente conexões de entrada, consulte Escutando e aceitando conexões de entrada.

O subsistema WSK passou um ponteiro para uma estrutura de WSK_INSPECT_ID para o aplicativo WSK quando chamou a função de retorno de chamada de evento WskInspectEvent do aplicativo. O aplicativo WSK copiou o conteúdo dessa estrutura para sua própria estrutura de WSK_INSPECT_ID antes de retornar WskInspectPend da função de retorno de chamada de evento WskInspectEvent. O aplicativo WSK passa um ponteiro para sua própria estrutura de WSK_INSPECT_ID no parâmetro InspectID quando chama a função WskInspectComplete.

Se um aplicativo WSK especificar WskInspectAccept no parâmetro de Ação, o subsistema WSK continuará a estabelecer a conexão de soquete. O subsistema WSK retornará o soquete para o aplicativo WSK concluindo uma chamada do aplicativo WSK para a função de do WskAccept ou chamando o aplicativo WSK WskAcceptEvent função de retorno de chamada de evento se ele estiver habilitado. Se a solicitação de conexão de entrada for descartada antes que a conexão do soquete seja totalmente estabelecida, o subsistema WSK chamará a função de retorno de chamada de evento WskAbortE vent do aplicativo WSK.

Se um aplicativo WSK especificar WskInspectReject no parâmetro Action, a solicitação de conexão de entrada será descartada e a conexão de soquete não será estabelecida.

Se a solicitação de conexão de entrada for descartada pelo sistema remoto antes que o aplicativo WSK chame a função WskInspectComplete, o subsistema WSK chamará a função de retorno de chamada de evento WskAbortEvent do aplicativo WSK.

Se o aplicativo WSK chamar a função WskInspectComplete em uma solicitação de conexão de entrada que foi anulada, a conexão não será estabelecida mesmo se o aplicativo WSK especificado WskInspectAccept no parâmetro de Ação.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
da Plataforma de Destino Universal
cabeçalho wsk.h (inclua Wsk.h)
IRQL <= DISPATCH_LEVEL

Consulte também

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent