Mengalokasikan Port NDIS
Untuk mengalokasikan port NDIS untuk adaptor miniport, driver miniport memanggil fungsi NdisMAllocatePort . NdisMAllocatePort sinkron dan kembali setelah NDIS berhasil mengalokasikan sumber daya yang diperlukan untuk port.
Sebelum driver miniport memanggil NdisMAllocatePort, driver harus memanggil fungsi NdisMSetMiniportAttributes untuk mengatur atribut dalam struktur NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Driver Miniport dapat memanggil NdisMAllocatePort untuk adaptor miniport setelah panggilan ke NdisMSetMiniportAttributes berhasil dikembalikan dan sebelum NDIS memanggil fungsi MiniportHaltEx untuk adaptor miniport tersebut.
NDIS selalu mengalokasikan port default (port nol) sehingga driver miniport tidak boleh mengalokasikan port default. NDIS membebaskan port default setelah driver miniport mengembalikan formulir MiniportHaltEx.
NDIS menetapkan nomor port ke port ketika driver miniport memanggil NdisMAllocatePort. Driver menentukan karakteristik port dalam struktur NDIS_PORT_CHARACTERISTICS sebelum driver memanggil NdisMAllocatePort. Ketika NdisMAllocatePort berhasil mengembalikan, anggota PortNumber dari NDIS_PORT_CHARACTERISTICS yang ditentukan parameter PortCharacteristics diatur ke nomor port yang ditetapkan NDIS ke port.
Sebelum kembali dari MiniportHaltEx, driver miniport harus memanggil fungsi NdisMFreePort untuk membebaskan semua port yang terkait dengan adaptor miniport. Jika adaptor miniport gagal diinisialisasi, driver harus memanggil NdisMFreePort untuk membebaskan semua port yang dialokasikan driver sebelum kembali dari fungsi MiniportInitializeEx . Untuk informasi selengkapnya tentang membebaskan port NDIS, lihat Membebaskan Port NDIS.
Jumlah maksimum port yang dapat dialokasikan oleh driver miniport adalah 0xffffff. Namun, dalam praktiknya, driver akan menetapkan jumlah maksimum yang didasarkan pada jenis port dan persyaratan aplikasi driver. Misalnya, untuk aplikasi jembatan, jumlah port tidak mungkin melebihi 16. Jumlah port akan lebih tinggi untuk titik akses yang menggunakan port supplicant 802.1x dan secara signifikan lebih tinggi untuk driver WAN yang menggunakan port jaringan privat maya (VPN).
Setelah driver miniport mengalokasikan port, port berada dalam status dialokasikan, dan port tidak aktif. Port tidak dapat digunakan untuk mengirim dan menerima data, memulai indikasi status, mengeluarkan permintaan OID, atau memulai peristiwa Plug and Play (PnP), hingga port diaktifkan. NDIS mengaktifkan port default secara otomatis setelah driver miniport mengatur atribut pendaftaran dalam struktur NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Untuk meminta agar NDIS tidak mengaktifkan port default, driver miniport dapat mengatur NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT di anggota AttributeFlags dari NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES.
NDIS meneruskan status autentikasi port default ke fungsi MiniportInitializeEx di anggota DefaultPortAuthStates dari struktur NDIS_MINIPORT_INIT_PARAMETERS . Jika driver miniport mengontrol port default, ketika driver miniport mengaktifkan port default, driver dapat mengaktifkan port default dengan menggunakan pengaturan autentikasi default. Untuk informasi selengkapnya tentang mengaktifkan port default, lihat Mengaktifkan Port NDIS.
Driver Miniport dapat menggunakan bendera NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS di anggota Bendera dari struktur NDIS_PORT_CHARACTERISTICS untuk port yang dialokasikan dan diaktifkan driver. Untuk kasus alokasi, NDIS menetapkan status autentikasi default ke port baru dan mengabaikan status autentikasi yang diteruskan ke fungsi NdisMAllocatePort .
Untuk informasi selengkapnya tentang status port NDIS, lihat Status Port NDIS. Untuk informasi selengkapnya tentang mengaktifkan port, lihat Mengaktifkan Port NDIS.