PFN_WSK_INSPECT_COMPLETE función de devolución de llamada (wsk.h)

La función WskInspectComplete completa la inspección de una solicitud de conexión entrante que se recibió previamente en un socket de escucha que tiene habilitado el modo de aceptación condicional.

Sintaxis

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

Puntero a una estructura de WSK_SOCKET . Este puntero especifica el socket de escucha en el que la aplicación WSK recibió la solicitud de conexión entrante que está inspeccionando.

[in] InspectID

Puntero a una estructura de WSK_INSPECT_ID . El contenido de la estructura identifica la solicitud de conexión específica que inspecciona la aplicación WSK.

[in] Action

Valor que especifica si la aplicación WSK acepta o rechaza la solicitud de conexión entrante. Una aplicación WSK debe especificar WskInspectAccept o WskInspectReject para este parámetro.

[in, out] Irp

Puntero a un IRP asignado por el autor de la llamada que usa el subsistema WSK para completar la operación de reanudación de forma asincrónica. Para obtener más información sobre el uso de IRP con funciones WSK, consulte Uso de IRP con funciones del kernel de Winsock.

Valor devuelto

WskInspectComplete devuelve uno de los siguientes códigos NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
La operación de inspección con lápiz anterior se reanudó correctamente. El IRP se completará con el estado correcto.
STATUS_PENDING
El subsistema WSK no pudo reanudar la operación de inspección inmediatamente. El subsistema WSK completará el IRP después de reanudar la operación de inspección de la solicitud de conexión entrante. El estado de reanudación de la operación de inspección se devolverá en el campo IoStatus.Status del IRP.
STATUS_FILE_FORCED_CLOSED
El socket ya no es funcional. El IRP se completará con el estado de error. La aplicación WSK debe llamar a la función WskCloseSocket para cerrar el socket lo antes posible.
Otros códigos de estado
Se produjo un error. El IRP se completará con el estado de error.

Comentarios

Una aplicación WSK llama a la función WskInspectComplete para completar la inspección de una solicitud de conexión entrante para la que la función de devolución de llamada de eventos WskInspectEvent de la aplicación devolvió previamente WskInspectPend.

Una aplicación WSK puede llamar a la función WskInspectComplete solo en un socket de escucha que tenga habilitado el modo de aceptación condicional. Una aplicación WSK puede habilitar el modo de aceptación condicional en un socket de escucha habilitando la opción de socket SO_CONDITIONAL_ACCEPT . Para obtener más información sobre cómo aceptar condicionalmente las conexiones entrantes, consulte Escucha y aceptación de Connections entrantes.

El subsistema WSK pasó un puntero a una estructura de WSK_INSPECT_ID a la aplicación WSK cuando llamó a la función de devolución de llamada de eventos WskInspectEvent de la aplicación. La aplicación WSK copió el contenido de esa estructura en su propia estructura de WSK_INSPECT_ID antes de devolver WskInspectPend desde la función de devolución de llamada de eventos WskInspectEvent . La aplicación WSK pasa un puntero a su propia estructura de WSK_INSPECT_ID en el parámetro InspectID cuando llama a la función WskInspectComplete .

Si una aplicación WSK especifica WskInspectAccept en el parámetro Action , el subsistema WSK seguirá estableciendo la conexión de socket. El subsistema WSK devolverá el socket a la aplicación WSK completando una llamada por la aplicación WSK a la función WskAccept o llamando a la función de devolución de llamada de eventos WskAcceptEvent de la aplicación WSK si está habilitada. Si la solicitud de conexión entrante se quita antes de que la conexión de socket esté totalmente establecida, el subsistema WSK llamará a la función de devolución de llamada de eventos WSKAbortEvent de la aplicación WSK.

Si una aplicación WSK especifica WskInspectReject en el parámetro Action , se quita la solicitud de conexión entrante y no se establece la conexión de socket.

Si el sistema remoto quita la solicitud de conexión entrante antes de que la aplicación WSK llame a la función WskInspectComplete , el subsistema WSK llama a la función de devolución de llamada de eventos WskAbortEvent de la aplicación WSK.

Si la aplicación WSK llama a la función WskInspectComplete en una solicitud de conexión entrante que se ha anulado, la conexión no se establecerá incluso si la aplicación WSK especificó WskInspectAccept en el parámetro Action .

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado wsk.h (incluya Wsk.h)
IRQL <= DISPATCH_LEVEL

Consulte también

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent