Bagikan melalui


Fungsi WSCWriteProviderOrder (sporder.h)

Fungsi WSCWriteProviderOrder digunakan untuk menyusun ulang penyedia transportasi yang tersedia. Urutan protokol menentukan prioritas protokol saat dijumlahkan atau dipilih untuk digunakan.

Sintaks

int WSCWriteProviderOrder(
  [in] LPDWORD lpwdCatalogEntryId,
  [in] DWORD   dwNumberOfEntries
);

Parameter

[in] lpwdCatalogEntryId

Penunjuk ke array elemen CatalogEntryId yang ditemukan dalam struktur WSAPROTOCOL_INFO . Urutan elemen CatalogEntryId adalah urutan prioritas baru untuk protokol.

[in] dwNumberOfEntries

Jumlah elemen dalam array lpwdCatalogEntryId .

Mengembalikan nilai

Fungsi mengembalikan ERROR_SUCCESS (nol) jika rutinitas berhasil. Jika tidak, kode kesalahan tertentu akan dikembalikan.

Kode kesalahan Makna
WSAEINVAL
Satu atau beberapa argumen tidak valid, tidak ada tindakan yang diambil.
WSANO_RECOVERY
Terjadi kesalahan yang tidak dapat dipulihkan. Kesalahan ini dikembalikan dalam beberapa kondisi termasuk yang berikut ini: pengguna tidak memiliki hak istimewa administratif yang diperlukan untuk menulis ke registri Winsock, atau kegagalan terjadi saat membuka atau menulis entri katalog.
WSA_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia. Kesalahan ini dikembalikan ketika memori tidak cukup untuk mengalokasikan entri katalog baru.
(lainnya)
Rutinitas dapat mengembalikan kode kesalahan registri apa pun.

Keterangan

Urutan di mana penyedia layanan transportasi awalnya diinstal mengatur urutan di mana mereka dijumlahkan melalui WSCEnumProtocols 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 aplikasi yang disebut Sporder.exe yang memungkinkan katalog protokol yang diinstal disusun ulang secara interaktif setelah protokol diinstal. Windows Sockets 2 juga menyertakan DLL tambahan, Sporder.dll yang mengekspor antarmuka prosedural ini untuk menyusun ulang protokol. Antarmuka ini dapat diimpor dengan menautkan dengan Sporder.lib.

Berikut ini adalah skenario di mana fungsi WSCWriteProviderOrder dapat gagal:

  • Parameter dwNumberOfEntries tidak sama dengan jumlah penyedia layanan terdaftar.
  • lpwdCatalogEntryId berisi pengidentifikasi katalog yang tidak valid.
  • lpwdCatalogEntryId tidak berisi semua pengidentifikasi katalog yang valid tepat satu kali.
  • Rutinitas tidak dapat mengakses registri karena alasan tertentu (misalnya, izin pengguna yang tidak memadai).
  • Proses lain (atau utas) saat ini memanggil fungsi .

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

Fungsi WSCWriteProviderOrder hanya dapat dipanggil oleh pengguna yang masuk sebagai anggota grup Administrator. Jika WSCWriteProviderOrder dipanggil oleh pengguna yang bukan anggota grup Administrator, panggilan fungsi akan gagal dan WSANO_RECOVERY dikembalikan. Untuk komputer yang berjalan pada 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.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header sporder.h
Pustaka Sporder.lib
DLL Ws2_32.dll

Lihat juga

WSAEnumProtocols

WSAPROTOCOL_INFO

WSAProviderConfigChange

WSCEnumProtocols