다음을 통해 공유


소켓 핸들

소켓 핸들은 필요에 따라 Windows 소켓 2의 파일 핸들일 수 있습니다. Winsock 공급자의 소켓 핸들은 ReadFile, WriteFile, ReadFileEx 및 WriteFileEx와 같은 다른 비 Winsock 함수와 함께 사용할 수 있습니다.

공급자에 대한 프로토콜 정보 구조의 XP1_IFS_HANDLES 멤버는 공급자의 소켓 핸들이 IFS(설치 가능한 파일 시스템) 핸들인지 여부를 결정합니다. IFS 핸들인 소켓 핸들은 다른 비 Winsock 함수(예: ReadFileWriteFile)에서 성능 저하 없이 사용할 수 있습니다. 비 Winsock 함수(예: ReadFileWriteFile)와 함께 사용할 때 비 IFS 소켓 핸들은 추가 처리 오버헤드가 수반되는 공급자와 파일 시스템 간의 상호 작용을 초래하여 상당한 성능 저하를 초래할 수 있습니다. Winsock이 아닌 함수와 함께 소켓 핸들을 사용하는 경우 기본 파일 시스템에서 전파된 오류 코드가 항상 Winsock 오류 코드에 매핑되지는 않습니다. 따라서 소켓 핸들은 Winsock 함수에서만 사용하는 것이 좋습니다.

소켓 핸들은 DuplicateHandle 함수와 함께 사용하면 안 됩니다. LSP(계층화된 서비스 공급자)가 있으면 실패할 수 있으며 대상 프로세스에서 소켓 핸들을 가져올 방법이 없습니다.

참고

계층화된 서비스 공급자는 더 이상 사용되지 않습니다. Windows 8 및 Windows Server 2012 Windows 필터링 플랫폼을 사용합니다.

 

Windows 소켓 2는 핸들을 사용하여 소켓 간에 데이터를 전송하는 특정 함수를 확장했습니다. 함수는 데이터를 전송하기 위한 소켓과 관련된 이점을 제공하며 WSARecv, WSASendWSADuplicateSocket을 포함합니다.