Data Bypass Mode

Mode bypass data driver filter dapat memberikan peningkatan kinerja sistem. NDIS tidak memanggil fungsi FilterXxx yang dilewati. Misalnya, jika layanan kirim dan terima tidak diperlukan untuk aplikasi filter tertentu, driver filter dapat melewati fungsi kirim dan terima.

Driver filter menentukan titik masuk default, untuk fungsi yang dapat dilewati, selama inisialisasi driver saat memanggil fungsi NdisFRegisterFilterDriver . Titik masuk adalah NULL untuk fungsi yang dilewati secara default. Untuk informasi selengkapnya tentang inisialisasi, lihat Mengin initialisasi Pengandar Filter.

Untuk mengubah status bypass saat runtime, driver harus menentukan titik masuk untuk fungsi FilterSetModuleOptions selama inisialisasi driver. Driver dapat menginisialisasi struktur NDIS_FILTER_PARTIAL_CHARACTERISTICS dan meneruskan karakteristik baru ke fungsi NdisSetOptionalHandlers dari dalam konteks FilterSetModuleOptions.

NDIS memanggil fungsi FilterSetModuleOptions , jika ada, pada awal operasi restart. Driver filter dapat mengatur mode bypass secara independen untuk setiap modul filter. Untuk informasi selengkapnya, lihat Memulai Modul Filter.

Driver filter dapat melewati fungsi FilterXxx opsional berikut yang ditentukan dalam struktur NDIS_FILTER_DRIVER_CHARACTERISTICS :

FilterSendNetBufferLists

FilterSendNetBufferListsComplete

FilterCancelSendNetBufferLists

FilterReturnNetBufferLists

FilterReceiveNetBufferLists

Untuk mengatur fungsi FilterXxx ke mode bypass, driver filter menentukan NULL untuk titik masuk fungsi tersebut. Namun, jika driver memanggil fungsi NDIS apa pun yang memiliki fungsi FilterXxx terkait, ia harus menyediakan titik masuk untuk fungsi FilterXxx tersebut. Misalnya, jika driver memanggil fungsi NdisFIndicateReceiveNetBufferLists , ia harus menyediakan fungsi FilterReturnNetBufferLists .

Jika driver filter menentukan fungsi FilterSendNetBufferLists dan mengantri mengirim permintaan, itu juga harus menentukan fungsi FilterCancelSendNetBufferLists .

Jika driver filter menentukan fungsi FilterReceiveNetBufferLists atau FilterReturnNetBufferLists , driver juga harus menentukan fungsi FilterStatus .

Untuk mengubah pengaturan mode bypass pada waktu berjalan, driver filter dapat memanggil fungsi NdisFRestartFilter . NdisFRestartFilter menjadwalkan operasi jeda yang diikuti oleh operasi restart untuk modul filter yang ditentukan. Ketika NDIS memanggil FilterSetModuleOptions, driver filter dapat mengubah fungsi untuk modul filter itu dengan memanggil NdisSetOptionalHandlers dan menentukan satu set titik masuk baru.

Nota Jeda dan restart dapat menyebabkan beberapa paket jaringan dijatuhkan pada jalur transmisi, atau menerima jalur, atau keduanya. Protokol jaringan yang menyediakan mekanisme transportasi yang andal dapat mencoba kembali operasi I /O jaringan jika terjadi paket yang hilang, tetapi protokol lain yang tidak menjamin keandalan tidak mencoba kembali operasi.

Driver filter dapat mendaftarkan fungsi opsional tambahan yang mendukung layanan driver opsional. Driver mendaftarkan layanan opsional ini di fungsi FilterSetOptions . Untuk informasi selengkapnya tentang layanan opsional ini, lihat Mengonfigurasi Layanan Driver Filter Opsional.