SO_WSK_EVENT_CALLBACK
SO_WSK_EVENT_CALLBACK 소켓 옵션을 사용하면 WSK 애플리케이션이 소켓의 이벤트 콜백 함수를 사용하거나 사용하지 않도록 설정할 수 있습니다. 이 소켓 옵션은 하나 이상의 이벤트 콜백 함수가 정의된 확장 인터페이스를 등록한 수신 대기 소켓, 데이터그램 소켓, 연결 지향 소켓 및 기본 소켓에만 적용됩니다.
WSK 애플리케이션이 이 소켓 옵션을 사용하여 수신 대기 소켓 또는 데이터그램 소켓에서 이벤트 콜백 함수를 사용하거나 사용하지 않도록 설정하는 경우 소켓이 로컬 전송 주소에 바인딩된 후 이를 수행해야 합니다.
WSK 애플리케이션이 이 소켓 옵션을 사용하여 연결 지향 소켓에서 이벤트 콜백 함수를 사용하거나 사용하지 않도록 설정하는 경우 소켓이 원격 전송 주소에 연결된 후에 사용해야 합니다.
소켓에서 이벤트 콜백 함수를 사용하거나 사용하지 않도록 설정하기 위해 WSK 애플리케이션은 다음 매개 변수를 사용하여 WskControlSocket 함수를 호출합니다.
매개 변수 | 값 |
---|---|
RequestType |
WskSetOption |
ControlCode |
SO_WSK_EVENT_CALLBACK |
수준 |
SOL_SOCKET |
InputSize |
sizeof(WSK_EVENT_CALLBACK_CONTROL) |
InputBuffer |
WSK_EVENT_CALLBACK_CONTROL 구조체에 대한 포인터 |
OutputSize |
0 |
OutputBuffer |
NULL |
OutputSizeReturned |
NULL |
WSK 애플리케이션은 WskControlSocket 함수를 호출하여 소켓에서 이벤트 콜백 함수를 사용하도록 설정할 때 IRP에 대한 포인터를 지정하지 않습니다.
WSK 애플리케이션은 필요에 따라 WskControlSocket 함수를 호출하여 소켓에서 이벤트 콜백 함수를 사용하지 않도록 설정할 때 IRP에 대한 포인터를 지정할 수 있습니다.
WSK 애플리케이션이 WskControlSocket 을 호출하여 이벤트 콜백 함수를 사용하지 않도록 설정하는 경우 WSK 하위 시스템은 다음과 같이 작동합니다.
WSK 애플리케이션이 WskControlSocket 함수를 호출할 때 비활성화되는 이벤트 콜백 함수에 대한 진행 중인 호출이 없는 경우 이벤트 콜백 함수는 사용하지 않도록 설정되고 WskControlSocket 함수는 STATUS_SUCCESS 반환합니다. WSK 애플리케이션이 IRP를 지정하면 성공 상태 IRP가 완료됩니다.
WSK 애플리케이션이 WskControlSocket 함수를 호출하고 WSK 애플리케이션이 IRP를 지정할 때 비활성화되는 이벤트 콜백 함수에 대한 진행 중인 호출이 있는 경우 WskControlSocket 함수는 STATUS_PENDING 반환합니다. WSK 하위 시스템은 이벤트 콜백 함수를 사용하지 않도록 설정하고 이벤트 콜백 함수에 대한 진행 중인 모든 호출이 반환된 후 IRP를 완료합니다.
WSK 애플리케이션이 WskControlSocket 함수를 호출하고 WSK 애플리케이션이 IRP를 지정하지 않을 때 비활성화되는 이벤트 콜백 함수에 대한 진행 중인 호출이 있는 경우 WskControlSocket 함수는 STATUS_EVENT_PENDING 반환합니다. WSK 하위 시스템은 이벤트 콜백 함수에 대한 진행 중인 모든 호출이 반환된 후 이벤트 콜백 함수를 사용하지 않도록 설정합니다.
표준 WSK 이벤트 콜백 함수를 사용하거나 사용하지 않도록 설정하는 경우 WSK 애플리케이션은 WSK_EVENT_CALLBACK_CONTROL 구조체의 NpiId 멤버를 WSKNPI(네트워크 프로그래밍 인터페이스) 식별자 NPI_WSK_INTERFACE_ID 대한 포인터로 설정합니다.
확장 인터페이스에 대한 콜백 함수를 사용하거나 사용하지 않도록 설정하는 경우 WSK 애플리케이션은 WSK_EVENT_CALLBACK_CONTROL 구조체의 NpiId 멤버를 해당 확장 인터페이스의 NPI 식별자에 대한 포인터로 설정합니다.
이벤트 콜백 함수를 사용하도록 설정할 때 WSK 애플리케이션은 WSK 소켓의 특정 범주 에 유효한 이벤트 콜백 함수의 조합을 동시에 사용하도록 설정할 수 있습니다. WSK 애플리케이션은 사용 중인 모든 이벤트 콜백 함수에 대해 WSK_EVENT_CALLBACK_CONTROL 구조체의 EventMask 멤버를 이벤트 플래그의 비트 OR로 설정하여 이러한 조합을 동시에 사용하도록 설정합니다.
이벤트 콜백 함수를 사용하지 않도록 설정하는 경우 WSK 애플리케이션은 각 이벤트 콜백 함수를 독립적으로 사용하지 않도록 설정해야 합니다. WSK 애플리케이션은 사용하지 않도록 설정된 이벤트 콜백 함수 및 WSK_EVENT_DISABLE 플래그에 대한 이벤트 플래그의 비트 OR로 WSK_EVENT_CALLBACK_CONTROL 구조의 EventMask 멤버를 설정하여 이벤트 콜백 함수를 독립적으로 사용하지 않도록 설정합니다.
다음 표에서는 수신 대기 소켓에 대한 유효한 이벤트 플래그를 보여줍니다.
이벤트 플래그 | 이벤트 콜백 함수 |
---|---|
WSK_EVENT_ACCEPT |
다음 표에서는 데이터그램 소켓에 대한 유효한 이벤트 플래그를 보여 있습니다.
이벤트 플래그 | 이벤트 콜백 함수 |
---|---|
WSK_EVENT_RECEIVE_FROM |
다음 표에서는 연결 지향 소켓에 대한 유효한 이벤트 플래그를 보여 있습니다.
이벤트 플래그 | 이벤트 콜백 함수 |
---|---|
WSK_EVENT_DISCONNECT |
|
WSK_EVENT_RECEIVE |
|
WSK_EVENT_SEND_BACKLOG |
수신 소켓은 수신 대기 소켓에서 허용하는 연결 지향 소켓에서 이벤트 콜백 함수를 자동으로 사용하도록 설정할 수 있습니다. WSK 애플리케이션은 수신 대기 소켓에서 연결 지향 소켓 이벤트 콜백 함수를 사용하도록 설정하여 이러한 콜백 함수를 자동으로 사용하도록 설정합니다. 이벤트 콜백 함수는 수신 대기 소켓의 WskAcceptEvent 이벤트 콜백 함수에서 소켓을 수락하는 경우에만 허용되는 연결 지향 소켓에서 자동으로 사용하도록 설정됩니다. 수신 대기 소켓의 WskAccept 함수에서 연결 지향 소켓을 수락하면 허용되는 소켓의 이벤트 콜백 함수가 자동으로 사용하도록 설정되지 않습니다.
수신 대기 소켓에서 연결 지향 이벤트 콜백 함수를 사용하도록 설정한 후에는 수신 대기 소켓에서 사용하지 않도록 설정할 수 없습니다. WskAcceptEvent 이벤트 콜백 함수를 사용하지 않도록 설정한 다음, 수신 대기 소켓에서 원래 사용하도록 설정된 연결 지향 이벤트 콜백 함수는 WskAcceptEvent 이벤트 콜백 함수에서 허용하는 모든 연결 지향 소켓에 계속 적용됩니다.
소켓의 이벤트 콜백 함수를 사용하도록 설정하고 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 이벤트 콜백 함수 사용 및 비활성화를 참조하세요.
요구 사항
Version |
Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
헤더 |
Wsk.h(Wsk.h 포함) |