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 は、並べ替えキーの値に従ってデバイス キューに挿入され、デバイス キューのスピン ロックが解放されます。
新しいエントリは、並べ替えキー値が並べ替えキー値以下で、並べ替えキー値が大きいエントリの前にあるキュー内のエントリの後に、デバイス キューに配置されます。
KeInsertByKeyDeviceQueue が FALSE を返す場合、呼び出し元は 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) |