Bagikan melalui


fungsi WSCInstallProvider64_32 (ws2spi.h)

[**WSCInstallProvider64_32** tidak lagi tersedia untuk digunakan pada Windows Vista. Sebagai gantinya, gunakan WSCInstallProvider atau WSCInstallProviderAndChains.]

Fungsi WSCInstallProvider64_32 menginstal penyedia layanan transportasi yang ditentukan ke dalam database konfigurasi sistem 32-bit dan 64-bit pada komputer 64-bit.

Sintaks

int WSCInstallProvider64_32(
  [in]  LPGUID                    lpProviderId,
  [in]  const WCHAR               *lpszProviderDllPath,
  [in]  const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
  [in]  DWORD                     dwNumberOfEntries,
  [out] LPINT                     lpErrno
);

Parameter

[in] lpProviderId

Penunjuk ke pengidentifikasi unik global (GUID) untuk penyedia.

[in] lpszProviderDllPath

Penunjuk ke string Unicode yang berisi jalur beban ke DLL 64-bit penyedia. String ini mengamati aturan biasa untuk resolusi jalur dan dapat berisi string lingkungan yang disematkan (seperti %SystemRoot%). String lingkungan tersebut diperluas ketika Ws2_32.dll kemudian harus memuat DLL penyedia atas nama aplikasi. Setelah string lingkungan yang disematkan diperluas, Ws2_32.dll meneruskan string yang dihasilkan ke fungsi LoadLibrary yang memuat penyedia ke dalam memori. Untuk informasi selengkapnya, lihat LoadLibrary.

[in] lpProtocolInfoList

Penunjuk ke array struktur WSAProtocol_Info . Setiap struktur mendefinisikan protokol, keluarga alamat, dan jenis soket yang didukung oleh penyedia.

[in] dwNumberOfEntries

Jumlah entri dalam array lpProtocolInfoList .

[out] lpErrno

Penunjuk ke kode kesalahan jika fungsi gagal.

Mengembalikan nilai

Jika WSCInstallProvider64_32 berhasil, nilainya adalah nol. Jika tidak, ia mengembalikan SOCKET_ERROR, dan kode kesalahan tertentu dikembalikan dalam parameter lpErrno .

Kode kesalahan Makna
WSAEFAULT
Satu atau beberapa argumen tidak berada di bagian ruang alamat pengguna yang valid.
WSAEINVAL
Satu atau beberapa argumen tidak valid.
WSAENOBUFS
Memori tidak dapat dialokasikan untuk buffer.
WSANO_RECOVERY
Terjadi kesalahan yang tidak dapat dipulihkan. Kesalahan ini dikembalikan dalam beberapa kondisi termasuk yang berikut ini: penyedia sudah diinstal, pengguna tidak memiliki hak istimewa administratif yang diperlukan untuk menulis ke registri Winsock, atau kegagalan terjadi saat membuat atau menginstal entri katalog.
WSASYSCALLFAILURE
Panggilan sistem yang seharusnya tidak pernah gagal gagal.
WSA_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia. Kesalahan ini dikembalikan ketika memori tidak cukup untuk mengalokasikan entri katalog baru.

Keterangan

WSCInstallProvider64_32 adalah versi dasar dari fungsi WSCInstallProviderAndChains64_32 yang hanya menginstal satu penyedia layanan transportasi. WSCInstallProvider64_32 dapat digunakan untuk menginstal protokol dasar, protokol berlapis, atau rantai protokol. Jika penyedia layanan berlapis sedang diinstal, maka WSCInstallProviderAndChains64_32 harus digunakan karena fungsi ini memungkinkan protokol berlapis dan satu atau beberapa rantai protokol diinstal dengan satu panggilan fungsi. Untuk menyelesaikan pekerjaan yang sama menggunakan WSCInstallProvider64_32 akan memerlukan beberapa panggilan fungsi untuk menginstal setiap komponen penyedia layanan.

Windows Sockets (Winsock) 2 mengakomodasi gagasan protokol berlapis. Protokol berlapis adalah protokol yang hanya mengimplementasikan fungsi komunikasi tingkat yang lebih tinggi sambil mengandalkan tumpukan transportasi yang mendasar untuk pertukaran data aktual dengan titik akhir jarak jauh. Contoh protokol 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 mendasar dan andal seperti TCP atau SPX. Istilah protokol dasar mengacu pada protokol seperti TCP atau SPX yang sepenuhnya mampu melakukan komunikasi data dengan titik akhir jarak jauh. Istilah protokol berlapis digunakan untuk menjelaskan protokol yang tidak bisa 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.

WSCInstallProvider64_32 adalah WSCInstallProvider versi 64-bit yang menginstal penyedia ke dalam katalog 32-bit dan 64-bit pada platform 64-bit. Artinya, pada platform 64-bit, dua katalog Winsock dipertahankan, dan proses 32-bit dan 64-bit dapat memuat penyedia transportasi yang diinstal dengan fungsi ini. Pada platform 64-bit, WSCInstallProvider hanya menginstal ke katalog Winsock 64-bit.

Pada komputer 64-bit, semua panggilan tidak dirancang khusus untuk 32-bit (misalnya, semua fungsi yang tidak berakhiran "32") beroperasi pada katalog 64-bit asli. Proses yang dijalankan pada komputer 64-bit harus menggunakan WSCInstallProvider64_32 untuk beroperasi pada katalog 32-bit serta katalog 64-bit, mempertahankan kompatibilitas. Definisi dan semantik panggilan 32-bit tertentu sama dengan rekan-rekan aslinya.

Rutinitas ini membuat informasi konfigurasi Winsock 2 umum yang diperlukan untuk penyedia yang ditentukan. Ini berlaku untuk protokol dasar, protokol berlapis, dan rantai protokol.

Parameter lpProtocolInfoList berisi daftar entri protokol untuk diinstal. Penelepon WSCInstallProvider64_32 bertanggung jawab untuk menyiapkan entri protokol yang tepat. Parameter lpProtocolInfoList tidak boleh NULL.

Setelah rutinitas ini berhasil diselesaikan, informasi protokol yang disediakan dalam lpProtocolInfoList akan dikembalikan oleh WSAEnumProtocols, WSCEnumProtocols, atau WSCEnumProtocols32. Ketahuilah bahwa di Windows, hanya instans Ws2_32.dll yang dibuat dengan memanggil WSAStartup setelah berhasil menyelesaikan fungsi ini akan menyertakan entri baru di WSAEnumProtocols, WSCEnumProtocols, dan WSCEnumProtocols32.

Catatan Fungsi WSAEnumProtocols tidak menghitung entri protokol berlapis sementara WSCEnumProtocols dan WSCEnumProtocols32 melakukannya.

 

Setelah berhasil, WSCInstallProvider64_32 akan mencoba memperingatkan semua aplikasi yang tertarik yang telah mendaftar untuk pemberitahuan perubahan dengan memanggil WSAProviderConfigChange.

Fungsi WSCInstallProvider64_32 hanya dapat dipanggil oleh pengguna yang masuk sebagai anggota grup Administrator. Jika WSCInstallProvider64_32 dipanggil oleh pengguna yang bukan anggota grup Administrator, panggilan fungsi akan gagal dan WSANO_RECOVERY dikembalikan dalam parameter lpErrno . Untuk komputer yang menjalankan Windows Vista atau Windows Server 2008, 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 yang diatur ke requireAdministrator. Jika aplikasi di 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.

Penginstalan file atau konfigurasi khusus penyedia layanan harus dilakukan oleh aplikasi panggilan.

Jika fungsi WSCInstallProvider atau WSCInstallProviderAndChains digunakan, fungsi harus dipanggil sekali untuk menginstal penyedia di katalog 32-bit dan sekali untuk menginstal penyedia di katalog 64-bit pada platform 64-bit.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP Professional x64 Edition [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 x64 Edition [hanya aplikasi desktop]
Target Platform Windows
Header ws2spi.h
Pustaka Ws2_32.lib
DLL Ws2_32.dll

Lihat juga

LoadLibrary

Konfigurasi dan Penginstalan Transportasi

Penyedia Layanan Transportasi

WSAEnumProtocols

WSAProviderConfigChange

Mulai WSA

WSCDeinstallProvider32

WSCEnumProtocols

WSCEnumProtocols32

WSCInstallProvider

WSCInstallProviderAndChains

WSCInstallProviderAndChains64_32