Bagikan melalui


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)

Lihat juga

KeInitializeDeviceQueue

KeInsertDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue