Поделиться через


функция обратного вызова PFN_WSK_INSPECT_COMPLETE (wsk.h)

Функция WskInspectComplete завершает проверку ранее записаного запроса на подключение, полученного в сокете прослушивания с включенным условным режимом принятия.

Синтаксис

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
)
{...}

Параметры

[in] ListenSocket

Указатель на структуру WSK_SOCKET. Этот указатель указывает сокет прослушивания, на котором приложение WSK получило входящий запрос на подключение, который он проверяет.

[in] InspectID

Указатель на структуру WSK_INSPECT_ID. Содержимое структуры определяет конкретный запрос на подключение, который проверяет приложение WSK.

[in] Action

Значение, указывающее, принимает ли приложение WSK или отклоняет входящие запросы на подключение. Приложение WSK должно указывать WskInspectAccept или WskInspectReject для этого параметра.

[in, out] Irp

Указатель на выделенный вызывающим объектом IRP, используемый подсистемой WSK для асинхронной операции возобновления. Дополнительные сведения об использовании irPs с функциями WSK см. в разделе Использование irPs с функциями ядра Winsock.

Возвращаемое значение

WskInspectComplete возвращает один из следующих кодов NTSTATUS:

Возвращаемый код Описание
STATUS_SUCCESS
Ранее выполнена успешно выполненная проверка. IRP будет завершен с состоянием успешности.
STATUS_PENDING
Подсистема WSK не могла немедленно возобновить операцию проверки. Подсистема WSK завершит IRP после возобновления операции проверки входящего запроса подключения. Состояние возобновления операции проверки будет возвращено в поле IoStatus.Status IRP.
STATUS_FILE_FORCED_CLOSED
Сокет больше не работает. IRP будет завершен с состоянием сбоя. Приложение WSK должно вызвать функцию WskCloseSocket, чтобы закрыть сокет как можно скорее.
Другие коды состояния
Произошла ошибка. IRP будет завершен с состоянием сбоя.

Замечания

Приложение WSK вызывает функцию WskInspectComplete, чтобы завершить проверку входящего запроса на подключение, для которого приложения WskInspectEvent функцию обратного вызова событий, ранее возвращенную WskInspectPend.

Приложение WSK может вызывать функцию WskInspectComplete только в сокете прослушивания с включенным условным режимом принятия. Приложение WSK может включить режим условного принятия в сокете прослушивания, включив параметр SO_CONDITIONAL_ACCEPT сокета. Дополнительные сведения об условном принятии входящих подключений см. в прослушивании и принятии входящих подключений.

Подсистема WSK передала указатель на структуру WSK_INSPECT_ID приложению WSK при вызове функции обратного вызова событий WskInspectE vent приложения. Приложение WSK копировало содержимое этой структуры в собственную структуру WSK_INSPECT_ID перед возвратом WskInspectPend из функции обратного вызова событий WskInspectEvent WskInspectEvent. Приложение WSK передает указатель на собственную структуру WSK_INSPECT_ID в параметре InspectID при вызове функции WskInspectComplete.

Если приложение WSK указывает WskInspectAccept в параметре Action, подсистема WSK продолжит устанавливать подключение сокета. Подсистема WSK вернет сокет в приложение WSK путем выполнения вызова приложением WSK функции WskAccept или вызова функции обратного вызова событий WSK приложения WSK, WskAcceptEvent. Если входящие запросы подключения удаляются до полного установления подключения сокета, подсистема WSK вызовет функцию обратного вызова события WSK приложения WSKAbortEvent.

Если приложение WSK указывает WskInspectReject в параметре Action, входящий запрос на подключение удаляется, а подключение сокета не установлено.

Если входящие запросы на подключение удаляются удаленной системой, прежде чем приложение WSK вызывает функцию WskInspectComplete, подсистема WSK вызывает приложения WSKAbortEvent функцию обратного вызова событий.

Если приложение WSK вызывает функцию WskInspectComplete для входящего запроса на подключение, которое было прервано, подключение не будет установлено, даже если приложение WSK, указанное WskInspectAccept в параметре Action.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционных систем Windows.
целевая платформа Всеобщий
заголовка wsk.h (include Wsk.h)
IRQL <= DISPATCH_LEVEL

См. также

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent