API Windows Sockets
Этот API реализует 16 и 32-разрядные сокеты - стандартный
сетевой интерфейс, используемый UNIX. Winsock поддерживает надежное, ориентированное
на соединение, а также ненадежное, не ориентированное на соединение взаимодействия.
Прикладной интерфейс Windows Sockets состоит из DLL Ws2_32.dll, которая
обеспечивает приложениям доступ к Winsock-функциям (см. рис. 20). Ws2_32.dll
вызывает сервисы пространства имен и провайдеров сервисов транспорта для
выполнения операций по разрешению имен и передачи сообщений. Библиотека
Msafd.dll действует как провайдер сервисов транспорта. Msafd.dll использует
библиотеки-помощники для Winsock (которые являются специфичными для протоколов),
для взаимодействия с драйверами протоколов уровня ядра. Например, Wshtcpip.dll
является помощником для протокола TCP/IP, а Wshnetbs.dll - для протокола
NetBEUI. Библиотека Mswsock.dll реализует расширенную функциональность
Microsoft Winsock.
![](images/20.gif)
Рис. 20. Интерфейс WinSockets
Провайдер сетевого транспорта Msafddll использует сервисы
драйвера файловой системы AFD.sys (Ancillary Function driver, AFD) для
реализации функций сокетов. AFD является TDI-клиентом и исполняет сетевые
операции с сокетами, такие как посылка и получение сообщений, путем отправки
запросов TDI IRP драйверам протоко-
лов. AFD не запрограммирован для использования определенных драйверов
протоколов, поэтому Msafd.dll информирует AFD об имени протокола, используемого
определенным сокетом, так чтобы AFD мог открыть объект-устройство, представляющее
этот протокол.
|