다음을 통해 공유


Provider-Specific 확장 메커니즘

WSAIoctl 함수를 사용하면 서비스 공급자가 공급자별 기능 확장을 제공할 수 있습니다. 이 메커니즘은 물론 애플리케이션이 특정 확장을 인식하고 관련된 의미 체계와 구문을 모두 이해한다고 가정합니다. 이러한 정보는 일반적으로 서비스 공급자 공급업체에서 제공합니다.

확장 함수를 호출하려면 애플리케이션에서 먼저 원하는 함수에 대한 포인터를 요청해야 합니다. 이 작업은 SIO_GET_EXTENSION_FUNCTION_POINTER 명령 코드를 사용하여 WSAIoctl 함수를 통해 수행됩니다. WSAIoctl에 대한 입력 버퍼에는 원하는 확장 함수에 대한 식별자가 포함되며 출력 버퍼에는 함수 포인터 자체가 포함됩니다. 그런 다음, 애플리케이션은 Ws2_32.dll 전달하지 않고 확장 함수를 직접 호출할 수 있습니다.

확장 함수에 할당된 식별자는 서비스 공급자 공급업체에서 할당하는 GUID(Globally Unique Identifier)입니다. 확장 함수를 만드는 공급업체는 함수 프로토타입의 구문을 포함하여 함수에 대한 전체 세부 정보를 게시해야 합니다. 이렇게 하면 둘 이상의 서비스 공급자 공급업체에서 일반적이고 널리 사용되는 확장 함수를 제공할 수 있습니다. 애플리케이션은 함수 포인터를 가져오고 함수를 구현하는 특정 서비스 공급자에 대해 아무것도 알 필요 없이 함수를 사용할 수 있습니다.

Windows Vista 이상에서는 Winsock DLL에서 직접 새 Winsock 시스템 확장을 내보내므로 이러한 확장을 로드하는 데 WSAIoctl 함수가 필요하지 않습니다. Windows Vista 이상에서 사용할 수 있는 새 확장 함수에는 Ws2_32.dll에서 내보낸 WSAPollWSASendMsg 함수가 포함됩니다.