NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION fungsi panggilan balik (ndkpi.h)

Fungsi NdkControlCqInterruptModeration (NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION) mengontrol moderasi interupsi pada antrean penyelesaian NDK (CQ).

Untuk informasi selengkapnya tentang moderasi interupsi, lihat Moderasi Interupsi.

Sintaks

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION NdkFnControlCqInterruptModeration;

NTSTATUS NdkFnControlCqInterruptModeration(
  [in] NDK_CQ *pNdkCq,
  [in] ULONG ModerationInterval,
  [in] ULONG ModerationCount
)
{...}

Parameter

[in] pNdkCq

Penunjuk ke objek antrean penyelesaian NDK (NDK_CQ).

[in] ModerationInterval

Jumlah maksimum microsecond yang dapat ditangguhkan penyedia mengganggu CPU host setelah penyelesaian ditempatkan ke dalam CQ memenuhi permintaan arm. Jika ModerationInterval adalah nol, penyedia tidak melakukan moderasi interupsi pada CQ terlepas dari nilai parameter ModerationCount . Jika ModerationInterval adalah MAXULONG, ModerationCount mengontrol moderasi interupsi pada CQ. Jika ModerationInterval lebih besar dari interval moderasi maksimum yang didukung adaptor atau jika granularitas timer adaptor lebih besar, penyedia dapat membulatkan nilai interval.

[in] ModerationCount

Jumlah maksimum penyelesaian yang dapat diakumulasikan penyedia di CQ sebelum mengganggu CPU host untuk memenuhi permintaan arm CQ. Jika ModerationInterval adalah nol atau satu, penyedia tidak melakukan moderasi interupsi pada CQ terlepas dari nilai parameter ModerationInterval . Jika ModerationCount MAXULONG atau lebih besar dari kedalaman CQ, ModerationInterval mengontrol moderasi interupsi pada CQ.

Nilai kembali

Fungsi NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION mengembalikan salah satu kode NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Operasi berhasil diselesaikan.
STATUS_INSUFFICIENT_RESOURCES
Permintaan gagal karena sumber daya yang tidak mencukup.
STATUS_NOT_SUPPORTED
Penyedia NDK tidak mendukung kontrol moderasi interupsi CQ dengan NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION. Penyedia yang mengatur bendera NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORT di anggota AdapterFlags struktur NDK_ADAPTER_INFO tidak boleh mengembalikan kode status ini.
STATUS_INVALID_PARAMETER_MIX
Konsumen NDK menyediakan MAXULONG untuk ModerationInterval dan MAXULONG atau nilai yang lebih besar dari jumlah entri penyelesaian yang dapat dipegang CQ untuk ModerationCount secara bersamaan.
Kode status lainnya
Terjadi kesalahan.

Keterangan

Konsumen NDK tidak boleh memanggil NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION kecuali penyedia menetapkan bendera NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED di anggota AdapterFlags struktur NDK_ADAPTER_INFO. Untuk penyedia yang menetapkan bendera NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED, konsumen NDK dapat memanggil fungsi ini kapan saja setelah CQ dibuat. Perilaku default untuk CQ bukanlah moderasi interupsi. Konsumen NDK tidak boleh memanggil fungsi ini pada CQ yang sama secara bersamaan.

Konsumen NDK tidak boleh menentukan MAXULONG untuk ModerationInterval dan MAXULONG atau nilai yang lebih besar dari jumlah entri penyelesaian yang dapat dipegang CQ (CqDepth) untuk ModerationCount secara bersamaan. Jika tidak, penyedia akan mengembalikan STATUS_INVALID_PARAMETER_MIX.

Konsumen NDK dapat memanggil NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION beberapa kali. Penyedia mungkin tidak menerapkan pengaturan sebelum kembali dari fungsi ini. Namun, penyedia tidak boleh menunda penerapan pengaturan tanpa batas waktu. Jika konsumen mengeluarkan panggilan lain ke fungsi ini sementara penyedia belum menerapkan pengaturan dari pemanggilan fungsi sebelumnya, penyedia harus membuat pengaturan yang terakhir disediakan efektif sesegera mungkin. Artinya, penyedia harus membatalkan aplikasi pengaturan sebelumnya dan menerapkan pengaturan baru, atau menunggu aplikasi pengaturan sebelumnya selesai dan menerapkan pengaturan baru.

Penyedia yang menunjukkan dukungan untuk moderasi interupsi dengan bendera NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED biasanya harus menangani NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION berhasil dan mengembalikan STATUS_SUCCESS. Namun, penyedia dapat gagal dalam permintaan karena kekurangan sumber daya seperti kegagalan alokasi memori. Dalam hal ini, penyedia harus mengembalikan STATUS_INSUFFICIENT_RESOURCES. Penyedia tidak dapat mengembalikan STATUS_PENDING dari fungsi ini. Penyedia yang tidak menunjukkan dukungan untuk fungsi ini dengan bendera NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED harus tetap menerapkan fungsi ini. Dalam hal ini, fungsi ini harus mengembalikan STATUS_NOT_SUPPORTED.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung, Didukung di NDIS 6.30 dan yang lebih baru.
Server minimum yang didukung Windows Server 2012
Target Platform Windows
Header ndkpi.h (termasuk Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Lihat juga

NDK_ADAPTER_INFO

NDK_CQ

NDK_CQ_DISPATCH