Bagikan melalui


Fungsi KeInsertQueue (ntifs.h)

Rutinitas KeInsertQueue menyisipkan entri di ekor antrean yang diberikan jika tidak dapat segera menggunakan entri untuk memenuhi tunggu utas.

Sintaks

LONG KeInsertQueue(
  [in, out] PRKQUEUE    Queue,
  [in, out] PLIST_ENTRY Entry
);

Parameter

[in, out] Queue

Penunjuk ke objek antrean yang diinisialisasi yang pemanggilnya menyediakan penyimpanan residen di kumpulan yang tidak disebarkan.

[in, out] Entry

Penunjuk ke entri yang akan diantrekan. Pointer ini harus berupa alamat ruang sistem residen.

Nilai kembali

KeInsertQueue mengembalikan status sinyal sebelumnya dari Antrean yang diberikan. Jika diatur ke nol (yaitu, tidak diberi sinyal) sebelum KeInsertQueue dipanggil, KeInsertQueue mengembalikan nol, yang berarti bahwa tidak ada entri yang diantrekan. Jika bukan nol (diberi sinyal), KeInsertQueue mengembalikan jumlah entri yang diantrekan sebelum KeInsertQueue dipanggil.

Keterangan

Entri yang akan diantrekan oleh KeInsertQueue harus dialokasikan dari kumpulan yang tidak disebarkan. Misalnya, memori untuk entri yang ditentukan pemanggil dapat dialokasikan dengan ExAllocatePoolWithTag. Jika penelepon mengalokasikan entri dengan ukuran tetap, membuat daftar lookaside dengan ExInitializeNPagedLookasideList dan mengalokasikannya dengan ExAllocateFromNPagedLookasideList lebih efisien daripada sering melakukan panggilan ke ExAllocatePoolWithTag, terutama untuk entri yang ukurannya bukan kelipatan PAGE_SIZE.

Jika ada utas yang menunggu objek antrean saat KeInsertQueue dipanggil, penantian satu utas terpenuhi oleh panggilan ini. Utas dikirim untuk eksekusi dengan penunjuk Entri yang diberikan.

Jika saat ini tidak ada utas yang menunggu objek antrean saat KeInsertQueue dipanggil, entri yang diberikan dimasukkan dalam antrean, dan status sinyal objek antrean bertahap.

Untuk informasi selengkapnya tentang menggunakan antrean internal yang dikelola driver, lihat Antrean yang Dikelola Driver.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ntifs.h (termasuk Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport)

Lihat juga

ExAllocateFromNPagedLookasideList

ExAllocatePoolWithTag

ExInitializeNPagedLookasideList

KeInitializeQueue

KeInsertHeadQueue

KeRemoveQueue