Fungsi KeInsertByKeyDeviceQueue (wdm.h)
Rutinitas KeInsertByKeyDeviceQueue memperoleh kunci putar untuk DeviceQueue yang ditentukan dan mengantre entri sesuai dengan nilai sort-key yang ditentukan jika antrean perangkat diatur ke status sibuk.
Sintaks
BOOLEAN KeInsertByKeyDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
[in] ULONG SortKey
);
Parameter
[in, out] DeviceQueue
Penunjuk ke objek kontrol jenis antrean perangkat tempat pemanggil menyediakan penyimpanan.
[in, out] DeviceQueueEntry
Arahkan ke entri antrean perangkat untuk dimasukkan ke dalam antrean perangkat sesuai dengan nilai kunci tertentu.
[in] SortKey
Menentukan nilai sortir-kunci yang menentukan posisi dalam antrean perangkat untuk menyisipkan entri.
Nilai kembali
Jika antrean perangkat kosong, FALSE dikembalikan, yang berarti DeviceQueueEntry tidak dimasukkan dalam antrean perangkat.
Keterangan
Kunci spin antrean perangkat yang ditentukan diperoleh dan status antrean perangkat diperiksa. Jika antrean perangkat diatur ke status sibuk, IRP yang ditentukan oleh DeviceQueueEntry dimasukkan ke dalam antrean perangkat sesuai dengan nilai kunci pengurutannya dan kunci spin antrean perangkat dilepaskan.
Entri baru diposisikan dalam antrean perangkat setelah entri apa pun dalam antrean dengan nilai kunci pengurutan kurang dari atau sama dengan nilai kunci pengurutannya dan mendahului entri apa pun dengan nilai kunci pengurutan yang lebih besar.
Jika KeInsertByKeyDeviceQueue mengembalikan FALSE, pemanggil harus mulai memproses IRP. Panggilan ke KeInsertDeviceQueue atau KeInsertByKeyDeviceQueue saat antrean kosong menyebabkan antrean perangkat beralih dari keadaan tidak sibuk ke keadaan sibuk.
Rutinitas ini untuk kode yang mengantrekan permintaan I/O ke driver perangkat.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm) |