Bagikan melalui


Menginisialisasi Penyedia Pemisah 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 header-nya, driver miniport NDIS 6.1 memanggil fungsi NdisMSetMiniportAttributes dari fungsi MiniportInitializeEx dan meneruskan NdisMSetMiniportAttributes struktur NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES yang diinisialisasi.

Struktur NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES berisi informasi berikut:

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

  • Anggota HardwareCapabilities NDIS_HD_SPLIT_ATTRIBUTES berisi kemampuan pemisahan data header yang didukung adaptor miniport. Kemampuan ini dapat mencakup kapabilitas yang saat ini dinonaktifkan oleh pengaturan file INF atau melalui halaman Properti tingkat lanjut .

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

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

NDIS menggunakan bendera NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT untuk mengaktifkan pemisahan data header untuk adaptor miniport. NDIS tidak akan mengatur NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT jika driver miniport tidak mengatur bendera NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT di 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 anggota BackfillSize dari struktur NDIS_HD_SPLIT_ATTRIBUTES ke nol sebelum memanggil NdisMSetMiniportAttributes. NDIS menetapkan anggota BackfillSize jika driver miniport harus mengalokasikan penyimpanan isi ulang terlebih dahulu di buffer data bingkai terpisah. Setelah NdisMSetMiniportAttributes berhasil mengembalikan, driver miniport harus menggunakan nilai BackfillSize yang ditentukan NDIS dan pra-alokasikan buffer data. Untuk informasi selengkapnya tentang ukuran isi ulang buffer data, lihat Mengalokasikan Isi Ulang untuk Buffer Data.

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