次の方法で共有


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

KeInsertDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue