Bagikan melalui


Menginisialisasi Penyedia Pemisahan Header-Data

Untuk mendukung pemisahan data header, driver miniport harus mendaftar sebagai driver NDIS 6.1 atau yang lebih baru. File sumber untuk driver miniport harus menentukan DNDIS61_MINIPORT=1 alih-alih DNDIS60_MINIPORT=1. Driver miniport juga harus menentukan NDIS 6.1 atau versi yang lebih baru dalam struktur NDIS_MINIPORT_DRIVER_CHARACTERISTICS.

Untuk mendaftarkan atribut pemisahan data headernya, driver miniport NDIS 6.1 memanggil fungsi NdisMSetMiniportAttributes dari fungsi MiniportInitializeEx dan meneruskan struktur NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES yang telah diinisialisasi ke NdisMSetMiniportAttributes.

Struktur NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES berisi informasi berikut:

  • HDSplitAttributes member NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES berisi penunjuk ke struktur NDIS_HD_SPLIT_ATTRIBUTES yang menentukan kemampuan pemisahan header dan data yang disediakan oleh adaptor miniport.

  • Anggota HardwareCapabilities dari NDIS_HD_SPLIT_ATTRIBUTES mencakup kemampuan pemisahan data header yang didukung oleh adaptor miniport. Kemampuan ini dapat mencakup kemampuan yang saat ini dinonaktifkan oleh pengaturan file INF atau melalui halaman properti Tingkat Lanjut.

  • CurrentCapabilities pada anggota NDIS_HD_SPLIT_ATTRIBUTES berisi kemampuan pemisahan header-data saat ini yang didukung oleh adaptor miniport. Jika pemisahan data header diaktifkan melalui *HeaderDataSplit kata kunci INF standar, driver miniport menggunakan flag yang sama dengan anggota struktur HardwareCapabilities untuk menunjukkan konfigurasi pemisahan data header saat ini. Untuk informasi selengkapnya tentang *HeaderDataSplit, lihat Standarisasi Kata Kunci INF untuk Pemisahan Header-Data.

  • HDSplitFlags adalah anggota NDIS_HD_SPLIT_ATTRIBUTES yang berisi bendera konfigurasi pemisahan data-header. Driver miniport harus mengatur anggota ini ke nol sebelum memanggil NdisMSetMiniportAttributes. NDIS menetapkan anggota ini dengan OR bitwise dari penanda konfigurasi. Setelah NdisMSetMiniportAttributes berhasil dijalankan, driver miniport harus memeriksa pengaturan flag di HDSplitFlags dan mengonfigurasi perangkat keras sesuai.

NDIS menggunakan bendera NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT untuk mengaktifkan pemisahan data header untuk adaptor miniport. NDIS tidak akan menetapkan NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT jika driver miniport tidak menetapkan bendera NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT dalam anggota CurrentCapabilities dari struktur NDIS_HD_SPLIT_ATTRIBUTES. Driver miniport harus mengaktifkan pemisahan data header di NIC jika NDIS mengatur bendera NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.

Driver miniport harus mengatur BackfillSize anggota struktur NDIS_HD_SPLIT_ATTRIBUTES ke nol sebelum memanggil NdisMSetMiniportAttributes. NDIS akan mengatur anggota BackfillSize jika driver miniport harus melakukan prapengalokasian ruang penyimpanan backfill di buffer data dari bingkai yang terpisah. Setelah NdisMSetMiniportAttributes berhasil mengembalikan hasil dengan sukses, driver miniport harus menggunakan nilai BackfillSize yang ditentukan oleh NDIS dan pra-mengalokasikan buffer data. Untuk informasi selengkapnya tentang ukuran isi ulang buffer data, lihat Mengalokasikan Isi Ulang untuk Buffer Data.

Driver miniport harus mengatur MaxHeaderSize anggota struktur NDIS_HD_SPLIT_ATTRIBUTES ke nol sebelum memanggil NdisMSetMiniportAttributes. NDIS menetapkan elemen ini ke ukuran maksimum yang diizinkan untuk buffer header dari frame terpisah. Setelah NdisMSetMiniportAttributes berhasil kembali, driver miniport harus menggunakan nilai MaxHeaderSize yang telah ditentukan oleh NDIS. Untuk informasi selengkapnya tentang ukuran header maksimum, lihat Mengalokasikan Buffer Header.