Bagikan melalui


Pengiriman Pelacakan IRQL

Untuk meningkatkan performa sistem, beberapa fungsi NDIS (misalnya, fungsiMiniportSendNetBufferLists) menyertakan bendera tingkat pengiriman yang menunjukkan IRQL saat ini. Penggunaan bendera tingkat pengiriman yang tepat dapat membantu menghindari upaya yang tidak perlu untuk mengatur IRQL.

Ada bendera lain yang mengontrol atribut lain, tetapi nama untuk bendera tingkat pengiriman adalah:

NDIS_SEND_FLAGS_DISPATCH_LEVEL

NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL (level penyelesaian pengiriman NDIS pada level penugasan)

BENDERA_PENERIMA_NDIS_TINGKAT_PENGIRIMAN

NDIS_RETURN_FLAGS_DISPATCH_LEVEL

NDIS_RWL_AT_DISPATCH_LEVEL

Pemanggil harus menentukan pengaturan bendera tingkat pengiriman dari IRQL yang diketahui saat ini, bukan dengan menguji IRQL. Misalnya, Anda mengetahui IRQL karena merupakan karakteristik tetap dari desain driver, atau driver menyimpan IRQL saat ini.

Jika IRQL saat ini yang diketahui adalah DISPATCH_LEVEL, pemanggil harus menyetel bendera ini. Jika IRQL saat ini tidak diketahui, atau pemanggil tidak berjalan pada DISPATCH_LEVEL, pemanggil harus menghapus flag ini. Jika pemanggil adalah NDIS, fungsi yang dipanggil harus menguji flag ini untuk menghindari perubahan IRQL.

Driver tidak boleh menguji IRQL untuk menentukan nilai untuk bendera tingkat pengiriman. Pengujian akan mengalahkan tujuan bendera. Jika perlu, fungsi yang disebut dapat melakukan pengujian dengan sendirinya. Bagaimana pengemudi menentukan bahwa ia harus atau tidak harus menyetel bendera diserahkan pada desain driver yang bersangkutan.