KeInsertByKeyDeviceQueue 関数 (wdm.h)

KeInsertByKeyDeviceQueue ルーチンは、指定された DeviceQueue のスピン ロックを取得し、デバイス キューがビジー状態に設定されている場合は、指定した並べ替えキー値に従ってエントリをキューに入れます。

構文

BOOLEAN KeInsertByKeyDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
  [in]      ULONG                SortKey
);

パラメーター

[in, out] DeviceQueue

呼び出し元がストレージを提供するデバイス キューの種類のコントロール オブジェクトへのポインター。

[in, out] DeviceQueueEntry

特定のキー値に従ってデバイス キューに挿入されるデバイス キュー エントリへのポインター。

[in] SortKey

エントリを挿入するデバイス キュー内の位置を決定する並べ替えキーの値を指定します。

戻り値

デバイス キューが空の場合、 FALSE が返されます。つまり、 DeviceQueueEntry はデバイス キューに挿入されません。

注釈

指定されたデバイス キュー スピン ロックが取得され、デバイス キューの状態が確認されます。 デバイス キューがビジー状態に設定されている場合、 DeviceQueueEntry によって指定された IRP は、並べ替えキーの値に従ってデバイス キューに挿入され、デバイス キューのスピン ロックが解放されます。

新しいエントリは、並べ替えキー値が並べ替えキー値以下で、並べ替えキー値が大きいエントリの前にあるキュー内のエントリの後に、デバイス キューに配置されます。

KeInsertByKeyDeviceQueueFALSE を返す場合、呼び出し元は IRP の処理を開始する必要があります。 キューが空の場合に KeInsertDeviceQueue または KeInsertByKeyDeviceQueue を呼び出すと、デバイス キューがビジー状態からビジー状態に移行します。

このルーチンは、デバイス ドライバーに I/O 要求をキューに入れるコード用です。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL DISPATCH_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport)IrqlDispatch(storport)、IrqlDispatch(storport)、 IrqlDispatch(wdm)MarkingQueuedIrps(wdm)

こちらもご覧ください

KeInitializeDeviceQueue

KeInsertDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue