KeInsertDeviceQueue 関数 (wdm.h)

KeInsertDeviceQueue ルーチンは、指定したデバイス キュー オブジェクトのスピン ロックを取得し、デバイス キューがビジー状態に設定されている場合は、指定したエントリをキューに入れます。

構文

BOOLEAN KeInsertDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);

パラメーター

[in, out] DeviceQueue

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

[in, out] DeviceQueueEntry

挿入するデバイス キュー エントリへのポインター。

戻り値

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

注釈

デバイス キューがビジー状態に設定されている場合、指定された DeviceQueueEntry がデバイス キューの末尾に挿入され、デバイス キューのスピン ロックが解放されます。

KeInsertDeviceQueueFALSE を返した場合、エントリはキューに入れられなかったので、呼び出し元は 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

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue