Bagikan melalui


Konfigurasi dan Penginstalan Transportasi

Agar protokol transportasi dapat diakses melalui Windows Sockets, protokol tersebut harus diinstal dengan benar pada sistem dan terdaftar di Windows Sockets. Ketika penyedia layanan transportasi diinstal dengan memanggil program penginstalan vendor, informasi konfigurasi harus ditambahkan ke database konfigurasi untuk memberikan informasi Ws2_32.dll diperlukan mengenai penyedia layanan. Ws2_32.dll mengekspor beberapa fungsi penginstalan, WSCInstallProvider dan WSCInstallProviderAndChains, agar program penginstalan vendor menyediakan informasi yang relevan tentang penyedia layanan yang akan diinstal. Informasi ini mencakup, misalnya, nama dan jalur ke DLL penyedia layanan dan daftar struktur WSAPROTOCOL_INFO yang dapat didukung penyedia ini. Ws2_32.dll juga menyediakan fungsi, WSCDeinstallProvider, untuk program deinstallation vendor untuk menghapus semua informasi yang relevan dari database konfigurasi yang dikelola oleh Ws2_32.dll. Lokasi dan format yang tepat dari informasi konfigurasi ini bersifat pribadi untuk Ws2_32.dll, dan hanya dapat dimanipulasi oleh fungsi yang disebutkan di atas.

Pada platform 64-bit, ada fungsi serupa yang beroperasi pada katalog 32-bit dan 64-bit. Fungsi-fungsi ini termasuk WSCInstallProvider64_32, WSCInstallProviderAndChains64_32, dan WSCDeinstallProvider32.

Urutan di mana penyedia layanan transportasi awalnya diinstal mengatur urutan di mana mereka dijumlahkan melalui WSCEnumProtocols dan WSCEnumProtocols32 di antarmuka penyedia layanan, atau melalui WSAEnumProtocols di antarmuka aplikasi. Lebih penting lagi, urutan ini juga mengatur urutan di mana protokol dan penyedia layanan dipertimbangkan ketika klien meminta pembuatan soket berdasarkan keluarga alamat, jenis, dan pengidentifikasi protokolnya. Windows Sockets 2 menyertakan applet yang disebut Sporder.exe yang memungkinkan katalog protokol yang diinstal diurutkan ulang secara interaktif setelah protokol diinstal. Windows Sockets 2 juga mencakup DLL tambahan, Sporder.dll, yang mengekspor antarmuka prosedural untuk menyusun ulang protokol. Antarmuka prosedural ini terdiri dari satu prosedur yang disebut WSCWriteProviderOrder.

Menginstal Protokol Berlapis dan Rantai Protokol

Struktur WSAPROTOCOL_INFO yang disediakan dengan setiap protokol yang akan diinstal menunjukkan apakah protokol tersebut merupakan protokol dasar, protokol berlapis, atau rantai protokol. Nilai parameter ProtocolChain.ChainLen ditafsirkan seperti yang ditunjukkan dalam tabel berikut.

Nilai Makna
0 Protokol berlapis.
1 Protokol dasar (atau rantai hanya dengan satu komponen).
>1 Rantai protokol.

 

Instalasi rantai protokol hanya dapat terjadi setelah instalasi yang berhasil dari semua komponen konstituen (protokol dasar dan protokol berlapis). Struktur WSAPROTOCOL_INFO untuk rantai protokol menggunakan parameter ProtocolChain untuk menjelaskan panjang rantai dan identitas setiap komponen. Protokol individual yang membentuk rantai tercantum dalam array ProtocolChain.ChainEntries, dengan elemen nol dari array yang sesuai dengan penyedia berlapis pertama. Protokol diidentifikasi oleh nilai CatalogEntryID mereka, yang ditetapkan oleh Ws2_32.dll pada waktu penginstalan protokol, dan dapat ditemukan dalam struktur WSAPROTOCOL_INFO untuk setiap protokol.

Nilai untuk parameter yang tersisa dalam struktur WSAPROTOCOL_INFO rantai protokol harus dipilih untuk mencerminkan atribut dan pengidentifikasi yang paling mencirikan rantai protokol secara keseluruhan. Saat memilih nilai-nilai ini, pengembang harus ingat bahwa komunikasi melalui rantai protokol hanya dapat terjadi ketika kedua titik akhir memiliki rantai protokol yang kompatibel yang diinstal, dan aplikasi tersebut harus dapat mengenali struktur WSAPROTOCOL_INFO yang sesuai.

Ketika protokol dasar diinstal, tidak perlu membuat entri apa pun dalam array ProtocolChain.ChainEntries . Secara implisit dipahami bahwa satu-satunya komponen rantai ini sudah diidentifikasi dalam parameter CatalogEntryID dari struktur WSAPROTOCOL_INFO yang sama. Perhatikan juga bahwa rantai protokol mungkin tidak menyertakan beberapa instans protokol berlapis yang sama.