Share via


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

WSK 하위 시스템이 다시 시작 작업을 비동기적으로 완료하는 데 사용하는 호출자 할당 IRP에 대한 포인터입니다. WSK 함수에서 IRP를 사용하는 방법에 대한 자세한 내용은 Winsock 커널 함수에서 IRP 사용을 참조하세요.

반환 값

WskInspectComplete 는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
이전에 보류된 검사 작업이 성공적으로 재개되었습니다. IRP는 성공 상태 완료됩니다.
STATUS_PENDING
WSK 하위 시스템이 검사 작업을 즉시 다시 시작할 수 없습니다. WSK 하위 시스템은 들어오는 연결 요청의 검사 작업을 재개한 후 IRP를 완료합니다. 검사 작업을 다시 시작한 상태 IRP의 IoStatus.Status 필드에 반환됩니다.
STATUS_FILE_FORCED_CLOSED
소켓이 더 이상 작동하지 않습니다. IRP는 실패 상태 완료됩니다. WSK 애플리케이션은 가능한 한 빨리 소켓을 닫기 위해 WskCloseSocket 함수를 호출해야 합니다.
기타 상태 코드
오류가 발생했습니다. IRP는 실패 상태 완료됩니다.

설명

WSK 애플리케이션은 WskInspectComplete 함수를 호출하여 애플리케이션의 WskInspectEvent 이벤트 콜백 함수가 이전에 WskInspectPend를 반환한 들어오는 연결 요청의 검사를 완료합니다.

WSK 애플리케이션은 조건부 수락 모드가 사용하도록 설정된 수신 소켓에서만 WskInspectComplete 함수를 호출할 수 있습니다. WSK 애플리케이션은 SO_CONDITIONAL_ACCEPT 소켓 옵션을 사용하도록 설정하여 수신 대기 소켓에서 조건부 수락 모드를 사용하도록 설정할 수 있습니다. 들어오는 연결을 조건부로 수락하는 방법에 대한 자세한 내용은 수신 대기 및 들어오는 Connections 수락을 참조하세요.

WSK 하위 시스템은 애플리케이션의 WskInspectEvent 이벤트 콜백 함수를 호출할 때 WSK 애플리케이션에 WSK_INSPECT_ID 구조에 대한 포인터를 전달했습니다. WSK 애플리케이션은 WskInspectEvent 이벤트 콜백 함수에서 WskInspectPend를 반환하기 전에 해당 구조체의 내용을 자체 WSK_INSPECT_ID 구조체에 복사했습니다. WSK 애플리케이션은 WskInspectComplete 함수를 호출할 때 InspectID 매개 변수의 자체 WSK_INSPECT_ID 구조에 대한 포인터를 전달합니다.

WSK 애플리케이션이 Action 매개 변수에서 WskInspectAccept를 지정하는 경우 WSK 하위 시스템은 소켓 연결을 계속 설정합니다. WSK 하위 시스템은 WSK 애플리케이션에서 WskAccept 함수에 대한 호출을 완료하거나 WSK 애플리케이션의 WskAcceptEvent 이벤트 콜백 함수(사용하도록 설정된 경우)를 호출하여 소켓을 WSK 애플리케이션으로 반환합니다. 소켓 연결이 완전히 설정되기 전에 들어오는 연결 요청이 삭제되면 WSK 하위 시스템은 WSK 애플리케이션의 WskAbortEvent 이벤트 콜백 함수를 호출합니다.

WSK 애플리케이션이 Action 매개 변수에서 WskInspectReject를 지정하면 들어오는 연결 요청이 삭제되고 소켓 연결이 설정되지 않습니다.

WSK 애플리케이션이 WskInspectComplete 함수를 호출하기 전에 원격 시스템에서 들어오는 연결 요청을 삭제하면 WSK 하위 시스템은 WSK 애플리케이션의 WskAbortEvent 이벤트 콜백 함수를 호출합니다.

WSK 애플리케이션이 중단된 들어오는 연결 요청에서 WskInspectComplete 함수를 호출하는 경우 WSK 애플리케이션이 Action 매개 변수에서 WskInspectAccept를 지정하더라도 연결이 설정되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wsk.h(Wsk.h 포함)
IRQL <= DISPATCH_LEVEL

추가 정보

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent