Identificadores de socket
Opcionalmente, un identificador de socket puede ser un identificador de archivo en Windows Sockets 2. Un identificador de socket de un proveedor winsock se puede usar con otras funciones que no sean winsock, como ReadFile, WriteFile, ReadFileEx y WriteFileEx.
El miembro XP1_IFS_HANDLES de la estructura de información del protocolo para un proveedor determina si un identificador de socket de un proveedor es un identificador del sistema de archivos instalable (IFS). Los identificadores de socket que son identificadores IFS se pueden usar sin una penalización de rendimiento con otras funciones que no sean Winsock (ReadFile y WriteFile, por ejemplo). Cualquier socket que no sea IFS se controla cuando se usa con funciones que no son winsock (ReadFile y WriteFile, por ejemplo) da lugar a interacciones entre el proveedor y el sistema de archivos en el que interviene una sobrecarga de procesamiento adicional que puede dar lugar a una penalización significativa del rendimiento. Cuando se usan identificadores de socket con funciones que no son winsock, los códigos de error propagados desde el sistema de archivos base no siempre se asignan a los códigos de error de Winsock. Por lo tanto, se recomienda que los identificadores de socket solo se usen con funciones winsock.
No se debe usar un identificador de socket con la función DuplicateHandle . La presencia de proveedores de servicios en capas (LSP) puede provocar un error y no hay forma de que el proceso de destino importe el identificador de socket.
Nota
Los proveedores de servicios en capas están en desuso. A partir de Windows 8 y Windows Server 2012, use la Plataforma de filtrado de Windows.
Windows Sockets 2 ha ampliado ciertas funciones que transfieren datos entre sockets mediante identificadores. Las funciones ofrecen ventajas específicas de los sockets para transferir datos e incluyen WSARecv, WSASend y WSADuplicateSocket.