PFN_WSK_BIND 콜백 함수(wsk.h)
WskBind 함수는 소켓을 로컬 전송 주소에 바인딩합니다.
구문
PFN_WSK_BIND PfnWskBind;
NTSTATUS PfnWskBind(
[in] PWSK_SOCKET Socket,
[in] PSOCKADDR LocalAddress,
ULONG Flags,
[in, out] PIRP Irp
)
{...}
매개 변수
[in] Socket
바인딩되는 소켓의 소켓 개체를 지정하는 WSK_SOCKET 구조체에 대한 포인터입니다.
[in] LocalAddress
소켓을 바인딩할 로컬 전송 주소를 지정하는 구조체에 대한 포인터입니다. 이 포인터는 WSK 애플리케이션이 소켓을 만들 때 지정한 주소 패밀리에 해당하는 특정 SOCKADDR 구조체 형식에 대한 포인터여야 합니다.
Flags
이 매개 변수는 시스템 사용을 위해 예약되어 있습니다. WSK 애플리케이션은 이 매개 변수를 0으로 설정해야 합니다.
[in, out] Irp
WSK 하위 시스템이 바인딩 작업을 비동기적으로 완료하는 데 사용하는 호출자 할당 IRP에 대한 포인터입니다. WSK 함수에서 IRP를 사용하는 방법에 대한 자세한 내용은 Winsock 커널 함수에서 IRP 사용을 참조하세요.
반환 값
WskBind 는 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
소켓이 로컬 전송 주소에 성공적으로 바인딩되었습니다. IRP는 성공 상태 완료됩니다. |
|
WSK 하위 시스템이 소켓을 즉시 바인딩할 수 없습니다. WSK 하위 시스템은 소켓을 로컬 전송 주소에 바인딩한 후 IRP를 완료합니다. 바인딩 작업의 상태 IRP의 IoStatus.Status 필드에 반환됩니다. |
|
소켓이 더 이상 작동하지 않습니다. IRP는 실패 상태 완료됩니다. WSK 애플리케이션은 가능한 한 빨리 소켓을 닫기 위해 WskCloseSocket 함수를 호출해야 합니다. |
|
오류가 발생했습니다. IRP는 실패 상태 완료됩니다. |
설명
수신 대기 소켓의 경우 WskBind 함수를 호출하면 지정된 로컬 전송 주소에서 들어오는 연결 요청을 수신 대기하도록 소켓이 준비됩니다. WSK 애플리케이션이 로컬 와일드카드 주소를 지정하는 경우 소켓은 모든 로컬 전송 주소에서 들어오는 연결 요청을 수신 대기합니다.
데이터그램 소켓의 경우 WskBind 함수를 호출하면 지정된 로컬 전송 주소에서 데이터그램을 보내고 받을 소켓을 준비합니다. WSK 애플리케이션이 로컬 와일드카드 주소를 지정하는 경우 소켓은 모든 로컬 전송 주소에 대한 데이터그램을 수신하고 시스템의 라우팅 정보에 의해 결정되는 적절한 로컬 전송 주소에서 데이터그램을 보냅니다.
연결 지향 소켓의 경우 WskBind 함수를 호출하면 소켓이 지정된 로컬 전송 주소에 바인딩됩니다. WskConnect 함수를 호출하기 전에 WskBind를 호출해야 합니다. WSK 애플리케이션이 로컬 와일드카드 주소를 지정하는 경우 애플리케이션이 WskConnect 를 호출하여 소켓을 원격 전송 주소에 연결할 때 네트워크 스택이 소켓을 적절한 로컬 전송 주소에 바인딩합니다. 이러한 상황에서 로컬 전송 주소는 시스템의 라우팅 정보에 의해 결정됩니다.
스트림 소켓의 경우 WskBind 함수를 호출하면 소켓이 지정된 로컬 전송 주소에 바인딩됩니다. WSK 애플리케이션이 로컬 와일드카드 주소를 지정하는 경우 네트워크 스택은 소켓을 사용 가능한 로컬 전송 주소에 바인딩합니다. WskListen 또는 WskConnect 함수를 호출하기 전에 WskBind를 호출해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wsk.h(Wsk.h 포함) |
IRQL | <= DISPATCH_LEVEL |