Bagikan melalui


Fungsi WSCSetProviderInfo (ws2spi.h)

**Catatan** Penyedia Layanan Berlapis tidak digunakan lagi. Dimulai dengan Windows 8 dan Windows Server 2012, gunakan Platform Pemfilteran Windows.
 
Fungsi **WSCSetProviderInfo** menetapkan nilai data untuk kelas informasi yang ditentukan untuk penyedia layanan berlapis (LSP).

Sintaks

int WSCSetProviderInfo(
  [in]  LPGUID                 lpProviderId,
  [in]  WSC_PROVIDER_INFO_TYPE InfoType,
  [in]  PBYTE                  Info,
  [in]  size_t                 InfoSize,
  [in]  DWORD                  Flags,
  [out] LPINT                  lpErrno
);

Parameter

[in] lpProviderId

Penunjuk ke pengidentifikasi unik global (GUID) untuk penyedia.

[in] InfoType

Kelas informasi yang akan diatur untuk entri protokol LSP ini.

[in] Info

Penunjuk ke buffer yang berisi data kelas informasi yang akan diatur untuk entri protokol LSP.

[in] InfoSize

Ukuran, dalam byte, dari buffer yang diacu oleh parameter Info .

[in] Flags

Bendera yang digunakan untuk mengubah perilaku panggilan fungsi WSCSetProviderInfo .

[out] lpErrno

Penunjuk ke kode kesalahan jika fungsi gagal.

Nilai kembali

Jika tidak ada kesalahan yang terjadi, WSCSetProviderInfo mengembalikan ERROR_SUCCESS (nol). Jika tidak, ia mengembalikan SOCKET_ERROR, dan kode kesalahan tertentu dikembalikan dalam parameter lpErrno .

Kode kesalahan Makna
ERROR_CALL_NOT_IMPLEMENTED
Panggilan tidak diimplementasikan. Kesalahan ini dikembalikan jika **ProviderInfoAudit** ditentukan dalam parameter InfoType .
WSAEFAULT
Satu atau beberapa argumen tidak berada di bagian ruang alamat pengguna yang valid.
WSAEINVAL
Satu atau beberapa argumen tidak valid.
WSANO_RECOVERY
Terjadi kesalahan yang tidak dapat dipulihkan. Kesalahan ini dikembalikan dalam beberapa kondisi termasuk yang berikut: pengguna tidak memiliki hak istimewa administratif yang diperlukan untuk menulis ke registri Winsock, atau kegagalan terjadi saat membuka entri katalog Winsock.
WSA_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia. Kesalahan ini dikembalikan ketika memori tidak cukup untuk mengalokasikan entri katalog baru.

Keterangan

WSCSetProviderInfo digunakan untuk mengatur data kelas informasi untuk penyedia layanan berlapis. Ketika parameter InfoType diatur ke ProviderInfoLspCategories, pada WSCSetProviderInfo yang berhasil menetapkan bendera kategori LSP yang sesuai yang diterapkan oleh penyedia berdasarkan nilai yang diteruskan dalam parameter Info .

Winsock 2 mengakomodasi protokol berlapis. Protokol berlapis adalah protokol yang hanya menerapkan fungsi komunikasi tingkat yang lebih tinggi, sambil mengandalkan tumpukan transportasi yang mendasar untuk pertukaran data aktual dengan titik akhir jarak jauh. Contoh protokol berlapis atau penyedia layanan berlapis adalah lapisan keamanan yang menambahkan protokol ke proses pembentukan koneksi untuk melakukan autentikasi dan untuk menetapkan skema enkripsi yang disepakati bersama. Protokol keamanan seperti itu umumnya akan memerlukan layanan protokol transportasi yang andal seperti TCP atau SPX. Istilah protokol dasar mengacu pada protokol seperti TCP atau SPX yang mampu melakukan komunikasi data dengan titik akhir jarak jauh. Istilah protokol berlapis digunakan untuk menjelaskan protokol yang tidak dapat berdiri sendiri. Rantai protokol kemudian akan didefinisikan sebagai satu atau beberapa protokol berlapis yang digabungkan dan dilabuhkan oleh protokol dasar. Protokol dasar memiliki anggota ChainLen dari struktur WSAPROTOCOL_INFO diatur ke BASE_PROTOCOL yang didefinisikan menjadi 1. Protokol berlapis memiliki anggota ChainLen dari struktur WSAPROTOCOL_INFO diatur ke LAYERED_PROTOCOL yang didefinisikan menjadi nol. Rantai protokol memiliki anggota ChainLen dari struktur WSAPROTOCOL_INFO yang diatur ke lebih besar dari 1.

Selama inisialisasi LSP, LSP harus menyediakan pointer ke sejumlah fungsi Winsock SPI. Fungsi-fungsi ini akan dipanggil selama pemrosesan normal oleh lapisan tepat di atas LSP (baik LSP lain atau Ws2_32.dll).

LSP yang mengimplementasikan sistem file yang dapat diinstal (IFS) dapat secara selektif memilih untuk menyediakan penunjuk ke fungsi yang diimplementasikan dengan sendirinya, atau meneruskan kembali pointer yang disediakan oleh lapisan tepat di bawah LSP. LSP non-IFS, karena mereka menyediakan handel mereka sendiri, harus mengimplementasikan semua fungsi Winsock SPI. Ini karena setiap SPI akan mengharuskan LSP untuk memetakan semua handel soket yang dibuatnya ke handel soket penyedia yang lebih rendah (baik LSP lain atau protokol dasar).

Namun, semua LSP melakukan pekerjaan spesifik mereka dengan melakukan pemrosesan ekstra hanya pada subset fungsi Winsock SPI.

Dimungkinkan untuk menentukan kategori LSP berdasarkan subset fungsi SPI yang diterapkan LSP dan sifat pemrosesan tambahan yang dilakukan untuk masing-masing fungsi tersebut.

Dengan mengklasifikasikan LSP, serta mengklasifikasikan aplikasi yang menggunakan soket Winsock, menjadi mungkin untuk secara selektif menentukan apakah LSP harus terlibat dalam proses tertentu pada runtime.

Pada Windows Vista dan yang lebih baru, LSP dapat diklasifikasikan berdasarkan bagaimana ia berinteraksi dengan panggilan dan data Windows Sockets. Kategori LSP adalah sekelompok perilaku yang dapat diidentifikasi pada subset fungsi Winsock SPI. Misalnya, filter konten HTTP akan dikategorikan sebagai pemeriksa data (kategori LSP_INSPECTOR ). Kategori LSP_INSPECTOR akan memeriksa, tetapi tidak mengubah parameter ke fungsi SPI transfer data. Aplikasi dapat mengkueri kategori LSP dan memilih untuk tidak memuat LSP berdasarkan kategori LSP dan serangkaian kategori LSP yang diizinkan dari aplikasi.

Tabel berikut ini mencantumkan kategori di mana LSP dapat diklasifikasikan.

Kategori LSP Deskripsi
**LSP_CRYPTO_COMPRESS** LSP adalah penyedia kriptografi atau kompresi data.
**LSP_FIREWALL** LSP adalah penyedia firewall.
**LSP_LOCAL_CACHE** LSP adalah penyedia cache lokal.
**LSP_INBOUND_MODIFY** LSP memodifikasi data masuk.
**LSP_INSPECTOR** LSP memeriksa atau memfilter data.
**LSP_OUTBOUND_MODIFY** LSP memodifikasi data keluar.
**LSP_PROXY** LSP bertindak sebagai proksi dan mengalihkan paket.
**LSP_REDIRECTOR** LSP adalah pengalih jaringan.
**LSP_SYSTEM** LSP dapat diterima untuk digunakan dalam layanan dan proses sistem.
  LSP mungkin termasuk dalam lebih dari satu kategori. Misalnya, firewall/keamanan LSP dapat dimiliki oleh kategori pemeriksa (**LSP_INSPECTOR**) dan firewall (**LSP_FIREWALL**).

Jika LSP tidak memiliki kategori yang ditetapkan, LSP dianggap berada dalam kategori Semua Lainnya. Kategori LSP ini tidak akan dimuat dalam layanan atau proses sistem (misalnya, lsass, winlogon, dan banyak proses svchost).

Fungsi WSCSetProviderInfo hanya dapat dipanggil oleh pengguna yang masuk sebagai anggota grup Administrator. Jika WSCSetProviderInfo dipanggil oleh pengguna yang bukan anggota grup Administrator, panggilan fungsi akan gagal dan WSANO_RECOVERY dikembalikan dalam parameter lpErrno . Fungsi ini juga dapat gagal karena kontrol akun pengguna (UAC). Jika aplikasi yang berisi fungsi ini dijalankan oleh pengguna yang masuk sebagai anggota grup Administrator selain Administrator bawaan, panggilan ini akan gagal kecuali aplikasi telah ditandai dalam file manifes dengan requestedExecutionLevel diatur ke requireAdministrator. Jika aplikasi pada Windows Vista atau Windows Server 2008 tidak memiliki file manifes ini, pengguna yang masuk sebagai anggota grup Administrator selain Administrator bawaan kemudian harus menjalankan aplikasi dalam shell yang ditingkatkan sebagai Administrator bawaan (administrator RunAs) agar fungsi ini berhasil.

**Catatan** Fitur TDI tidak digunakan lagi dan akan dihapus di versi Microsoft Windows yang akan datang. Tergantung pada cara Anda menggunakan TDI, gunakan Winsock Kernel (WSK) atau Windows Filtering Platform (WFP). Untuk informasi selengkapnya tentang WFP dan WSK, lihat Platform Pemfilteran Windows dan Winsock Kernel. Untuk entri blog Jaringan Windows Core tentang WSK dan TDI, lihat Pengantar Winsock Kernel (WSK).
 

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header ws2spi.h
Pustaka Ws2_32.lib
DLL Ws2_32.dll

Lihat juga

Mengategorikan Penyedia Layanan berlapis dan AplikasiWSAPROTOCOL_INFOWSCGetApplicationCategoryWSCGetProviderInfoWSCSetApplicationCategoryWSC_PROVIDER_INFO_TYPE