Bagikan melalui


Mendukung Header-Data Dibagi dalam Driver Protokol dan Driver Filter

Driver protokol dan driver filter NDIS 6.0 dan yang lebih baru harus mendukung indikasi menerima indikasi dengan header dan data dalam buffer yang tidak berdampingan.

Anda tidak boleh berasumsi bahwa hanya ada satu MDL dalam struktur NET_BUFFER . Driver protokol dan driver filter tidak diperlukan untuk melakukan apa pun yang spesifik untuk mendukung pendaftaran pemisahan data header. Tetapi, kode penanganan penerima driver harus menangani lebih dari satu MDL dalam rantai MDL dan harus menggunakan makro MDL NDIS berikut untuk mengakses rantai MDL:

Dengan buffer terpisah, panjang data yang terkait dengan struktur NET_BUFFER (di anggota DataLength dari struktur NET_BUFFER_DATA ) dibagi di beberapa MDL. Misalnya, jika driver protokol mencoba mengakses seluruh buffer data di MDL pertama, driver dapat mengakses data yang tidak valid.

Catatan Setelah panggilan indikasi terima kembali ke driver miniport, driver miniport dapat mengklaim kembali MDL header. Driver yang terlalu berlebihan atau klien mereka tidak boleh mengakses MDL header setelah panggilan indikasi terima kembali ke driver miniport. Pembatasan ini juga berlaku bahkan ketika driver miniport tidak menunjukkan data yang diterima dengan status NDIS_RECEIVE_FLAGS_RESOURCES.