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 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm) |
関連項目
KeInitializeDeviceQueue の
KeRemoveDeviceQueue の