Bagikan melalui


Gunakan Jaringan yang Dihosting Nirkabel, Berbagi Sambungan Internet

Jaringan Yang Dihosting Nirkabel adalah fitur WLAN baru yang didukung pada Windows 7 dan Windows 8. Ini juga didukung pada Windows Server 2012 dan Windows Server 2008 R2 dengan Layanan LAN Nirkabel terinstal. Fitur ini mengimplementasikan dua fungsi utama:

  • Virtualisasi adaptor nirkabel fisik ke lebih dari satu adaptor nirkabel virtual terkadang disebut sebagai Wi-Fi Virtual.
  • Titik akses nirkabel (AP) berbasis perangkat lunak terkadang disebut sebagai SoftAP yang menggunakan adaptor nirkabel virtual yang ditunjuk.

Berbagi Koneksi Internet (ICS) adalah fitur di Windows yang disediakan melalui Layanan SharedAccess. Secara ketat, SharedAccess memungkinkan berbagi jaringan melalui komputer di mana akses jaringan bersama tidak selalu menyediakan akses ke Internet. Kami menggunakan istilah ICS dan SharedAccess secara bergantian di bagian ini, karena Berbagi Koneksi Internet adalah skenario utama untuk Jaringan yang Dihosting nirkabel dan istilah ICS lebih dikenal oleh komunitas pengguna.

Jaringan Yang Dihosting Nirkabel terkait erat dengan ICS untuk mengaktifkan jaringan area pribadi nirkabel (PAN) dan skenario berbagi Internet. Bagian ini memberikan rekomendasi umum kepada pengembang aplikasi tentang cara mengintegrasikan Hosted Network dan ICS nirkabel menggunakan Hosted Network dan ICS API nirkabel publik.

Berbagi Sambungan Internet

Layanan ICS beroperasi dalam salah satu dari dua mode yang mungkin:

  • Mode mandiri

    Hanya fungsi server DHCPv4 yang beroperasi ketika layanan ICS dipanggil. Ini adalah mode operasi khusus untuk ICS dan hanya tersedia melalui Jaringan yang Dihosting nirkabel. Pengguna atau aplikasi tidak dapat langsung memulai dan menghentikan ICS mandiri melalui API ICS publik atau perintah netsh . Memulai Jaringan Yang Dihosting nirkabel biasanya melibatkan memulai ICS dalam mode mandiri untuk menggunakan fungsi server DHCPv4 untuk menyediakan alamat IPv4 privat untuk perangkat yang terhubung. Komunikasi jaringan untuk perangkat yang terhubung terbatas pada pengiriman dan penerimaan paket jaringan antara perangkat yang terhubung dan komputer lokal yang menghosting Jaringan Yang Dihosting nirkabel dan di antara perangkat yang terhubung itu sendiri. Ini secara efektif memungkinkan skenario jaringan area pribadi nirkabel untuk Jaringan Yang Dihosting nirkabel.

  • Mode penuh

    Semua fitur ICS beroperasi ketika layanan dipanggil, seperti terjemahan alamat jaringan dan fungsi server DHCP untuk IPv4 dan IPv6. Ini adalah mode operasi normal untuk ICS. Pengguna atau aplikasi dapat memulai dan menghentikan mode ICS penuh melalui API publik atau perintah netshell. Misalnya, layanan ini dapat dihentikan menggunakan net stop sharedaccess dari prompt perintah yang ditinggikan. Menggabungkan Jaringan Yang Dihosting nirkabel dengan ICS penuh, Komunikasi jaringan untuk perangkat yang terhubung tidak terbatas pada PAN nirkabel. Setiap perangkat yang terhubung memiliki akses ke jaringan (seperti Internet) melalui koneksi jaringan bersama dari komputer yang menjalankan Jaringan Yang Dihosting nirkabel. Ini secara efektif memungkinkan skenario berbagi Jaringan untuk Jaringan yang Dihosting nirkabel.

Di bagian ini, kami menggunakan istilah ICS lengkap untuk berarti kasus di mana semua fungsi ICS dipanggil dalam Layanan ICS untuk menyediakan akses ke semua fitur ICS lengkap dengan Jaringan yang Dihosting nirkabel.

Dua mode operasi ICS saling eksklusif dengan ICS penuh yang lebih diutamakan. Layanan ICS dapat beralih dari mode mandiri ke mode penuh, tetapi tidak dari mode penuh ke mode mandiri. Mode mandiri ICS diperkenalkan di Windows 7 dan pada Windows Server 2008 R2 dengan Layanan LAN Nirkabel yang diinstal bersama dengan fitur Hosted Network nirkabel. Ini tidak tersedia di versi Windows sebelumnya.

Setiap operasi ICS penuh melibatkan dua adaptor jaringan yang berbeda dalam sistem:

  • Antarmuka publik. Ini adalah antarmuka jaringan dengan akses ke Internet. Antarmuka inilah yang digunakan komputer lokal yang menjalankan ICS untuk berbagi Internet dengan klien dan perangkat yang terhubung ke antarmuka tersebut melalui SoftAP.
  • Antarmuka privat. Ini adalah antarmuka jaringan yang digunakan perangkat lain untuk terhubung ke komputer lokal yang menjalankan ICS. Server DHCPv4 berjalan pada antarmuka privat ini untuk menyediakan alamat IP lokal privat ke komputer jarak jauh lainnya.

Ketika antarmuka publik tidak memiliki akses Internet, server DHCP pada antarmuka privat terus menyediakan alamat IP lokal ke perangkat yang terhubung. ICS mandiri hanya melibatkan antarmuka privat tempat SoftAP berjalan; tidak melibatkan antarmuka publik apa pun.

Kapan saja, paling banyak ada satu instans ICS penuh yang berjalan di komputer lokal. Jika ICS penuh sudah berjalan di komputer lokal, memulai ICS penuh lainnya menunjukkan perilaku fungsional berikut:

  • Jika antarmuka publik dan privat dari ICS penuh baru sama dengan ICS penuh yang ada, memulai ICS penuh kedua setara dengan no-op.
  • Jika antarmuka publik baru berbeda dari antarmuka publik lama, tetapi antarmuka privat baru sama dengan antarmuka privat lama, memulai ICS penuh kedua memiliki sedikit dampak pada perangkat yang terhubung pada antarmuka privat yang sama. Kemampuan untuk mengakses Internet dapat berubah dengan antarmuka publik baru.
  • Jika antarmuka privat baru berbeda dari antarmuka privat lama, fungsi ICS akan berhenti berfungsi pada antarmuka privat lama dan mulai diterapkan ke antarmuka privat baru. Setiap perangkat jarak jauh yang terhubung ke komputer lokal menggunakan antarmuka privat lama akan kehilangan konektivitas IP ke komputer lokal.

Ketika ICS penuh sudah berjalan, memanggil ICS penuh kedua mengganggu perangkat yang terhubung dari jarak jauh menggunakan antarmuka privat lama selama integrasi ICS kedua menggunakan antarmuka privat baru yang berbeda.

Untuk mengelola dan menggunakan layanan ICS untuk mendukung integrasi ICS dengan Hosted Network nirkabel, aplikasi perangkat lunak harus terlebih dahulu mendapatkan antarmuka INetSharingManager . Antarmuka INetSharingManager menyediakan akses secara langsung atau tidak langsung ke semua antarmuka COM lainnya di API ICS. Metode get_SharingInstalled pada antarmuka INetSharingManager melaporkan apakah komputer lokal mendukung berbagi koneksi. Metode get_EnumEveryConnection pada antarmuka INetSharingManager mengambil antarmuka enumerasi untuk semua koneksi di folder koneksi. Metode get_INetSharingConfigurationForINetConnection mengambil antarmuka INetSharingConfiguration untuk koneksi yang ditentukan. Metode pada antarmuka INetSharingConfiguration dapat digunakan untuk mengkueri dan mengubah pengaturan ICS.

Jaringan Yang Dihosting nirkabel harus dimulai sebelum memanggil metode get_EnumEveryConnection pada antarmuka INetSharingManager untuk menghitung semua koneksi dalam folder koneksi.

Untuk informasi tentang ICS dan antarmuka publik dan metode yang dapat digunakan untuk mengkueri dan mengubah pengaturan ICS, silakan lihat dokumentasi tentang Tentang Berbagi Koneksi Internet dan Firewall Koneksi Internet.

Jaringan yang Dihosting dan Integrasi ICS

Ketika ICS penuh tidak berjalan, memulai Jaringan yang Dihosting nirkabel juga secara internal memulai Layanan ICS dalam mode mandiri hanya dengan fungsi server DHCPv4 untuk mengalokasikan alamat IP untuk perangkat yang terhubung pada antarmuka Hosted Network nirkabel. Rentang alamat subnet untuk server DHCPv4 mandiri adalah 192.168.173.0/24. Hal ini berbeda dengan rentang subnet 192.168.137.0/24 yang digunakan dengan ICS penuh.

Memulai Jaringan Yang Dihosting nirkabel dengan ICS penuh menggunakan logika berikut:

  • Jika ICS penuh belum berjalan, memulai Jaringan Yang Dihosting nirkabel juga memulai Layanan ICS dengan server DHCPv4 mandiri.
  • Jika ICS penuh sudah berjalan dan antarmuka privat adalah antarmuka Hosted Network nirkabel, cukup mulai Hosted Network nirkabel.
  • Jika ICS penuh sudah berjalan tetapi antarmuka privat bukan antarmuka Hosted Network nirkabel, Hosted Network nirkabel akan dimulai tanpa fungsi server DHCPv4 pada antarmuka Hosted Network nirkabel.

Dampak logika di atas menyoroti fakta-fakta berikut:

  • ICS tidak beralih dari mode penuh ke mode mandiri.
  • Mode mandiri hanya dapat dipanggil oleh Jaringan Yang Dihosting nirkabel ketika ICS tidak berjalan dalam mode penuh.
  • Jika ICS berjalan dalam mode mandiri, ICS akan didahului ke mode penuh jika pengguna atau aplikasi memulai ICS dalam mode penuh.
  • Transisi dari mode mandiri ke mode penuh di ICS akan mengganggu perangkat yang terhubung di PAN nirkabel jika antarmuka privat ICS penuh tidak sama dengan yang untuk SoftAP.

Dibutuhkan waktu untuk memulai atau menghentikan Layanan ICS di komputer lokal dalam mode penuh atau mandiri. Aplikasi harus memeriksa status Layanan ICS menggunakan fungsi NotifyServiceStatusChange untuk memastikan bahwa Layanan ICS tidak dalam status mulai/berhenti tertunda sebelum memulai atau menghentikan Jaringan Yang Dihosting nirkabel untuk digunakan dengan integrasi ICS.

Memulai dan Menghentikan Jaringan yang Dihosting Nirkabel

Windows menyediakan platform di mana lebih dari satu aplikasi bersamaan diizinkan untuk mengelola Jaringan yang Dihosting nirkabel secara bersamaan. Secara khusus setiap aplikasi dapat memulai dan menghentikan Hosted Network nirkabel sendiri, tanpa pengetahuan sebelumnya tentang aplikasi lain.

Ada dua set fungsi untuk memulai dan menghentikan Jaringan yang Dihosting.

Beberapa aplikasi mungkin memerlukan penggunaan Hosted Network nirkabel. Fungsi WlanHostedNetworkStartUsing dan WlanHostedNetworkStopUsing memulai dan menghentikan Jaringan Yang Dihosting nirkabel dengan cara yang kompatibel dengan aplikasi bersamaan lainnya. Fungsi WlanHostedNetworkStartUsing dan WlanHostedNetworkStopUsing memungkinkan aplikasi memiliki referensi ke Hosted Network nirkabel. Mekanisme ini menjaga Jaringan Yang Dihosting nirkabel tetap berjalan asalkan setidaknya satu aplikasi lain memiliki referensi saat ini ke Jaringan Yang Dihosting nirkabel. Setiap pengguna dapat memanggil fungsi-fungsi ini. Panggilan yang berhasil ke WlanHostedNetworkStartUsing harus dicocokkan dengan panggilan ke fungsi WlanHostedNetworkStopUsing . Setiap perubahan status Jaringan yang Dihosting yang disebabkan oleh fungsi WlanHostedNetworkStartUsing akan secara otomatis dibatalkan jika aplikasi panggilan menutup handel panggilannya (dengan memanggil WlanCloseHandle dengan parameter hClientHandle yang sama yang diteruskan ke WlanHostedNetworkStartUsing) atau jika proses berakhir.

Fungsi WlanHostedNetworkForceStart dan WlanHostedNetworkForceStop memaksa memulai dan menghentikan Jaringan Yang Dihosting nirkabel. Fungsi-fungsi ini hanya dapat dipanggil jika pengguna memiliki hak istimewa yang ditingkatkan yang sesuai. Panggilan yang berhasil ke WlanHostedNetworkForceStart akhirnya dapat dicocokkan dengan panggilan ke fungsi WlanHostedNetworkForceStop , tergantung pada desain aplikasi. Fungsi-fungsi ini mentransisikan status Jaringan Yang Dihosting nirkabel tanpa mengaitkan permintaan dengan handel panggilan aplikasi. Setiap perubahan status Jaringan yang Dihosting yang disebabkan oleh fungsi WlanHostedNetworkForceStart tidak akan secara otomatis dibatalkan jika aplikasi panggilan menutup handel panggilannya (dengan memanggil WlanCloseHandle dengan parameter hClientHandle yang sama yang diteruskan ke WlanHostedNetworkStartUsing) atau jika proses berakhir. Jika aplikasi yang memanggil fungsi WlanHostedNetworkForceStart ditutup tanpa memanggil salah satu fungsi untuk menghentikan Hosted Network nirkabel, maka Hosted Network dibiarkan berjalan. Aplikasi mungkin memanggil fungsi WlanHostedNetworkForceStart setelah memastikan bahwa pengguna sistem yang ditingkatkan menerima peningkatan persyaratan daya yang terlibat dalam menjalankan Jaringan Yang Dihosting nirkabel untuk jangka waktu yang lama.

Rekomendasi umum tentang fungsi mana yang akan dipanggil untuk memulai dan menghentikan Jaringan yang Dihosting nirkabel adalah sebagai berikut:

  • Gunakan fungsi WlanHostedNetworkStartUsing dan WlanHostedNetworkStopUsing dalam aplikasi untuk memulai dan menghentikan Jaringan Yang Dihosting nirkabel.
  • Jangan gunakan fungsi WlanHostedNetworkForceStart untuk memulai Jaringan Yang Dihosting nirkabel kecuali benar-benar diperlukan oleh aplikasi. Fungsi WlanHostedNetworkForceStart juga memerlukan hak istimewa yang ditingkatkan.
  • Hanya gunakan fungsi WlanHostedNetworkForceStop sebagai metode pemulihan. Fungsi WlanHostedNetworkForceStop menyebabkan Hosted Network nirkabel segera berhenti. Aplikasi lain yang mendengarkan pemberitahuan Hosted Network nirkabel mungkin perlu mengambil tindakan pemulihan. Untuk informasi selengkapnya, lihat diskusi di bawah ini tentang urutan pemulihan untuk Hosted Network nirkabel.

Urutan Mulai untuk Jaringan yang Dihosting Nirkabel

Untuk aplikasi yang memulai Hosted Network nirkabel dengan ICS penuh, rekomendasinya adalah memulai Hosted Network nirkabel, lalu memulai ICS penuh. Jika Jaringan Yang Dihosting nirkabel sudah berjalan, aplikasi harus menggunakan fungsi WlanHostedNetworkForceStop untuk menghentikan Jaringan Yang Dihosting nirkabel hanya jika ICS penuh diperlukan tetapi belum diaktifkan sebelum Jaringan yang Dihosting dimulai. Ini akan memungkinkan aplikasi lain untuk pulih dari potensi gangguan yang disebabkan oleh dimulainya ICS penuh. Untuk informasi selengkapnya, lihat diskusi di bawah ini tentang urutan pemulihan untuk Hosted Network nirkabel. Operasi gabungan harus berhasil dan gagal secara keseluruhan.

Catatan

Jaringan Yang Dihosting nirkabel harus dimulai sebelum mencoba menghitung adaptor yang sesuai menggunakan antarmuka IEnumNetSharingEveryConnection .

 

Langkah-langkah yang diurutkan berikut adalah urutan mulai yang direkomendasikan dalam aplikasi menggunakan Hosted Network nirkabel dengan ICS penuh:

  • Panggil fungsi WlanHostedNetworkInitSettings untuk memastikan Jaringan Hosted nirkabel dikonfigurasi dan siap digunakan.
  • Panggil fungsi WlanHostedNetworkQueryStatus dan WlanHostedNetworkQueryProperty untuk menentukan apakah Hosted Network nirkabel diizinkan dan tersedia. Jika Jaringan Yang Dihosting nirkabel tidak diizinkan dan tidak tersedia, kembalikan kesalahan.
  • Uji untuk melihat apakah Layanan ICS yang digunakan untuk ICS penuh diizinkan. Jika layanan ICS tidak dapat dimulai, kembalikan kesalahan.
  • Panggil fungsi WlanHostedNetworkForceStop untuk memaksa penghentian Jaringan Yang Dihosting nirkabel.
  • Panggil fungsi WlanHostedNetworkStartUsing untuk memulai Hosted Network nirkabel.
  • Jika Jaringan Yang Dihosting nirkabel gagal dimulai, kembalikan kesalahan.
  • Jika ICS penuh sudah berjalan dan antarmuka publik atau privat saat ini berbeda dari antarmuka baru yang akan digunakan, cache antarmuka publik dan privat saat ini. Aplikasi juga dapat memilih untuk mengembalikan kesalahan atau meminta pengguna jika integrasi ICS sudah berjalan.
  • Mulai ICS penuh dengan pengaturan baru untuk antarmuka publik dan privat.
  • Jika ICS penuh gagal memulai dengan pengaturan ini, coba mulai layanan ICS penuh dengan antarmuka publik dan privat yang di-cache jika ICS penuh berjalan sebelumnya. Panggil fungsi WlanHostedNetworkForceStop untuk menghentikan Hosted Network nirkabel dan mengembalikan kesalahan.
  • Mengembalikan keberhasilan bahwa Jaringan yang Dihosting nirkabel dan ICS penuh berhasil.

Hentikan Urutan untuk Jaringan yang Dihosting Nirkabel

Saat menggunakan Hosted Network nirkabel dengan ICS penuh, aplikasi yang telah menyelesaikan pekerjaannya mungkin ingin menghentikan Hosted Network nirkabel dan layanan ICS yang digunakan untuk ICS penuh. Dalam hal ini, disarankan agar fungsi WlanHostedNetworkForceStop dipanggil untuk menghentikan Jaringan yang Dihosting daripada memanggil fungsi WlanHostedNetworkStopUsing . Fungsi WlanHostedNetworkForceStop menghentikan Hosted Network nirkabel dan juga berfungsi untuk memungkinkan aplikasi lain pulih. Untuk informasi selengkapnya, lihat diskusi di bawah ini tentang urutan pemulihan untuk Hosted Network nirkabel.

Langkah-langkah yang diurutkan berikut adalah urutan berhenti yang direkomendasikan dalam aplikasi menggunakan Jaringan Yang Dihosting nirkabel dan ICS penuh:

Aplikasi yang menggunakan Hosted Network nirkabel tanpa ICS penuh yang selesai dengan pekerjaannya hanya perlu memanggil fungsi WlanHostedNetworkStopUsing atau WlanHostedNetworkForceStop untuk menghentikan Jaringan Yang Dihosting nirkabel. Jika fungsi WlanHostedNetworkStartUsing dipanggil untuk memulai Hosted Network nirkabel, maka aplikasi harus memanggil fungsi WlanHostedNetworkStopUsing untuk menghentikan Hosted Network nirkabel. Jika Jaringan Yang Dihosting nirkabel sudah dimulai sebelum aplikasi atau aplikasi yang disebut fungsi WlanHostedNetworkForceStart untuk memaksa memulai Jaringan Yang Dihosting nirkabel, maka aplikasi dapat memanggil fungsi WlanHostedNetworkForceStop untuk menghentikan Jaringan Yang Dihosting nirkabel atau tidak melakukan apa pun (biarkan Jaringan Yang Dihosting nirkabel dimulai) tergantung pada skenario.

Urutan Pemulihan untuk Jaringan yang Dihosting Nirkabel

Aplikasi yang menggunakan Jaringan Yang Dihosting nirkabel mungkin terpengaruh oleh tindakan aplikasi lain. Layanan ICS dan antarmuka untuk mengelola ICS tidak menyediakan metode bagi aplikasi untuk mendaftar pemberitahuan perubahan ICS. Jika aplikasi lain memanggil metode EnableSharing atau DisableSharing pada antarmuka INetSharingConfiguration untuk mengaktifkan atau menonaktifkan berbagi pada koneksi, pesan dikirim ke antarmuka pengguna (layar) di komputer lokal tidak ke aplikasi lain. Jadi aplikasi perlu mengandalkan pemberitahuan Jaringan yang Dihosting nirkabel untuk melakukan tindakan pemulihan ketika ICS atau perubahan Jaringan yang Dihosting nirkabel terjadi.

Aplikasi yang menggunakan Hosted Network nirkabel harus mendaftar untuk pemberitahuan Hosted Network nirkabel dengan memanggil WlanRegisterNotification. Jika pemberitahuan hanya untuk Hosted Network nirkabel diperlukan, maka aplikasi harus meneruskan WLAN_NOTIFICATION_SOURCE_HNWK dalam parameter dwNotifSource yang diteruskan ke WlanRegisterNotification. Jika notifikasi nirkabel lainnya juga diperlukan, maka WLAN_NOTIFICATION_SOURCE_HNWK harus dikombinasikan dengan konstanta sumber pemberitahuan untuk jenis pemberitahuan nirkabel lain yang diinginkan dan meneruskan nilai ini dalam parameter dwNotifSource .

Urutan pemulihan sama untuk aplikasi dengan atau tanpa ICS penuh, dengan asumsi bahwa aplikasi tidak ingin memulai layanan ICS lagi. Setelah menerima pemberitahuan Jaringan Yang Dihosting nirkabel bahwa Jaringan yang Dihosting telah berhenti, lakukan hal berikut:

Urutan Pemulihan untuk Perangkat yang Tersambung

Perangkat jarak jauh atau komputer yang terhubung ke Jaringan Yang Dihosting nirkabel dapat dipengaruhi oleh tindakan aplikasi lain yang berdampak pada ICS dan Jaringan yang Dihosting nirkabel. Untungnya, sebagian besar perangkat telah membangun logika coba lagi dalam aplikasi perangkat untuk menangani hilangnya sinyal atau roaming sementara.

Urutan pemulihan yang mungkin untuk perangkat atau komputer yang terhubung ke Jaringan Yang Dihosting nirkabel yang kehilangan kontak adalah sebagai berikut:

  • Driver perangkat nirkabel menunjukkan sambungan media terputus ke lapisan atas tumpukan jaringan pada perangkat.
  • Aplikasi perangkat memulai pemeriksaan berkala untuk ketersediaan Hosted Network nirkabel.
  • Setelah aplikasi perangkat kembali mendeteksi Jaringan Yang Dihosting nirkabel, perangkat memulai koneksi nirkabel.
  • Setelah koneksi berhasil dengan Hosted Network nirkabel, aplikasi perangkat memperbarui pengaturan IP-nya.

Tentang Jaringan yang Dihosting Nirkabel

Sampel Jaringan yang Dihosting Nirkabel

WlanHostedNetworkForceStart

WlanHostedNetworkInitSettings

WlanHostedNetworkQueryProperty

WlanHostedNetworkQuerySecondaryKey

WlanHostedNetworkQueryStatus

WlanHostedNetworkRefreshSecuritySettings

WlanHostedNetworkSetProperty

WlanHostedNetworkSetSecondaryKey

WlanHostedNetworkStartUsing

WlanHostedNetworkStopUsing

WlanRegisterVirtualStationNotification