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 de 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 de 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 pelo 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 WSK, consulte Usando IRPs com funções de kernel Winsock.

Retornar valor

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 êxito status.
STATUS_PENDING
O subsistema 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 de retomar a 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 falha status. O aplicativo WSK deve chamar a função WskCloseSocket para fechar o soquete o mais rápido possível.
Outros códigos status
Ocorreu um erro. O IRP será concluído com falha status.

Comentários

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 retornou 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 Connections de entrada.

O subsistema WSK passou um ponteiro para uma estrutura 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 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 WSK_INSPECT_ID no parâmetro InspectID quando chama a função WskInspectComplete .

Se um aplicativo WSK especificar WskInspectAccept no parâmetro Action , o subsistema do 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 WskAccept ou chamando a função de retorno de chamada de evento WskAcceptEvent do aplicativo WSK se ela estiver habilitada. Se a solicitação de conexão de entrada for descartada antes que a conexão de soquete seja totalmente estabelecida, o subsistema do WSK chamará a função de retorno de chamada de evento WskAbortEvent 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 que o aplicativo WSK tenha especificado WskInspectAccept no parâmetro Action .

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

Confira também

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent