Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Windows ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ. C ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ API ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ Gopher, FTP ΠΈ HTTP, Π½Π΅ Π·Π½Π°Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ API Π²ΠΊΠ»ΡΡΠ°ΡΡ Windows Internet, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ WinInet (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ Gopher, FTP ΠΈ HTTP), ΠΈ WinHTTP (Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ HTTP). B ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ WinHTTP ΡΠ΄ΠΎΠ±Π½Π΅Π΅ WinInet. HTTP β ΡΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ API, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Windows Server 2003 Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
WinInet ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Gopher, FTP ΠΈ HTTP Π²Π΅ΡΡΠΈΠΉ 1.0 ΠΈ 1.1. ΠΡΠΎΡ API Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π½Π°Π±ΠΎΡΡ ΠΏΠΎΠ΄-API, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ API-ΡΡΠ½ΠΊΡΠΈΠΈ FTP Π²ΡΠΎΠ΄Π΅ InternetConnect Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ FTP-cep-Π²Π΅ΡΡ, FtpFindFirstFile ΠΈ FtpFindNextFile Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ FTP-ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π° ΡΠ°ΠΊΠΆΠ΅ FtpGetFile ΠΈ FtpPutFile Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎ Π΄Π΅ΡΠ°Π»ΡΡ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ TCP/IP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° FTP API-ΡΡΠ½ΠΊΡΠΈΠΈ Gopher ΠΈ HTTP ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. WinInet ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Windows, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Windows Explorer ΠΈ Internet Explorer.
Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ WinHTTP API β 5.1; ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π² Windows 2000 Ρ Service Pack 3, Π² Windows XP ΠΈ Windows Server 2003- ΠΡΠΎΡ API ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP 1.1 Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ HTTP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ HTTP API Π² WinInet. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ WinInet HTTP API ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎ WinHTTP API β Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ Ρ HTTP-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ Windows-ΡΠ»ΡΠΆΠ±Ρ Π±Π΅Π· UI, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ API-ΡΡΠ½ΠΊΡΠΈΠΈ WinInet. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, WinHTTP API Π»ΡΡΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π°ΡΠΈΡΡ Π²ΡΠΎΠ΄Π΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² WinInet API.
C ΠΏΠΎΠΌΠΎΡΡΡ HTTP API, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Windows Server 2003, ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΏΡΠΈΠ΅ΠΌ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ URL, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ HTTP-ΠΎΡΠ²Π΅ΡΡ. HTTP API Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ SSL (Secure Sockets Layer), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ HTTP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌ. ΠΡΠΎΡ API ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅, ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ IPv4 ΠΈ IPv6. HTTP API ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ IIS Π²Π΅ΡΡΠΈΠΈ 6 (ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Windows Server 2003).
HTTP API, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Httpapi.dll, ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅Ρ Http.sys ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΄ΡΠ°. Http.sys Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ HttpInitialize Π»ΡΠ±ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ HttpCreateHttpHandle ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π·Π°ΠΊΡΡΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π° ΡΡΠ½ΠΊΡΠΈΡ HttpAddUrl β ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ URL-Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΈΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ URL, Http.sys Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΠ’Π’Π -Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 80, Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
HttpReceiveHttpRequest ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ URL, zHttpSendHttpRespome ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ HTTP-ΠΎΡΠ²Π΅ΡΡ. ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π° Π»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ GetOverlappedResult ΠΈΠ»ΠΈ ΠΏΠΎΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Http.sys Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Π½Π΅ΠΏΠΎΠ΄ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ·ΡΠ²Π°Ρ HttpAddToFragmentCache ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΡ ΠΈΠΌΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Ρ ΠΊΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ΄Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΏΡΠΎΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Http.sys Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ MmAllocate-PagesForMdl, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ³Π΄Π° Http.sys ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Http.sys ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡ ΠΈΠ· ΠΊΡΡΠ°), ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ MmMapLockedPagesSpecifyCache, Π° ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ β MmUnmapLockedPages. Http.sys Ρ ΡΠ°Π½ΠΈΡ ΠΊΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΡΠ²ΠΈΡ ΠΈΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡΠ΅ΡΠ΅Ρ ΡΡΠΎΠΊ ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Http.sys ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΊΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡΠ΅Π³ΠΎ ΠΎ ΠΌΠ°Π»ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ ΠΏΠ°ΠΌΡΡΠΈ (ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ ΡΠΌ. Π² Π³Π»Π°Π²Π΅ 7). ΠΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ HttpSendHttpResponse ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ², Http.sys ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π°Π½Π½ΡΠ΅, ΠΊΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ TCP/ IP ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΈ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΡΠΈΠΊΠΈ β ΡΡΠΎ API, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Microsoft Π΄Π»Ρ OS/2 LAN Manager ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Windows NT ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½ΡΡ ΡΠ²ΡΠ·Ρ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΡΠΈΠΊΠΈ β Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ² β Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ. ΠΠ±Π° API ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°ΡΠΈΡΡ Windows, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½ΠΈΠΌ.
Π‘Π΅ΡΠ²Π΅ΡΡ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΈ ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΈΠΌΠ΅Π½Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ (Universal Naming Convention, UNC), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΠΏΠΎΡΠΎΠ± ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π² Windows-ΡΠ΅ΡΡΡ . O ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ UNC-ΠΈΠΌΠ΅Π½ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ²ΡΠ·Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. Π‘Π΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°ΡΡΠ΅Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π», ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. Π€ΠΎΡΠΌΠ°Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°Π½Π°Π»Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: \\CepΠ²ep\Pipe\ ΠΠΌΡΠΠ°Π½Π°Π»Π°. ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π‘Π΅ΡΠ²Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. ΠΠ»Π΅ΠΌΠ΅Π½Ρ Pipe Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ Β«PipeΒ», Π° ΠΠΌΡ-ΠΠ°Π½Π°Π»Π° β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ. Π£Π½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°Π½Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ UNC-ΠΈΠΌΠ΅-Π½ΠΈ ΠΊΠ°Π½Π°Π»Π° β \\MyComputer\Pipe\MyServerApp\ConnectionPipe.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Windows-ΡΡΠ½ΠΊΡΠΈΡ CreateNamedPipe. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠΌΡ ΠΊΠ°Π½Π°Π»Π° Π² ΡΠΎΡΠΌΠ΅ \\.\Π iΡΠ΅\ΠΠΌΡΠΠ°Π½Π°Π»Π°, Π³Π΄Π΅ Β«\\.\Β» β ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² Windows. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π·Π°ΡΠΈΡΡ, Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠΈΠΉ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, ΡΠ»Π°Π³, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΊΠ°Π½Π°Π» Π±ΡΡΡ Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, ΠΈ ΡΠ»Π°Π³ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΊΠ°Π½Π°Π»Π° (ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ).
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ΅Π²ΡΡ API-ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΠΎ Π°Π΄ΡΠ΅ΡΠ°ΡΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ, ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ΅Π»ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ± ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ CreateNamedPipe Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° Ρ ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. ΠΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Ρ CreateNamedPipe, ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ CreateNamedPipe. Π‘ΠΎΠ·Π΄Π°Π² ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Windows-ΡΡΠ½ΠΊΡΠΈΡ ConnectNamedPipe, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ ConnectNamedPipe ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΡΠ°ΠΊ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΠΈ ΠΎΠ½Π° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΏΠΎΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Π΄Π°Π½Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°).
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Windows-ΡΡΠ½ΠΊΡΠΈΡ CreateFile ΠΈΠ»ΠΈ CallNamedPipe, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΠΌΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΊΠ°Π½Π°Π»Π°. ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ConnectNamedPipe, ΠΏΡΠΎΡΠΈΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΈΠΌ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°Π½Π°Π»Ρ (Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ) ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ Π·Π°ΡΠΈΡΡ ΠΊΠ°Π½Π°Π»Π° (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΡΠΌ. Π³Π»Π°Π²Ρ 8). ΠΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΡΠΎΡΠΎΠ½Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ConnectNamedPipe, Π²ΡΠ·Π²Π°Π½Π½Π°Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· Windows-ΡΡΠ½ΠΊΡΠΈΠΈ ReadFile ΠΈ WriteFile. ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ, ΡΠ°ΠΊ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 13-9.