IoStartNextPacketByKey 関数 (ntifs.h)

IoStartNextPacketByKey ルーチンは、指定した並べ替えキー値に従って、指定したデバイス オブジェクトの関連付けられているデバイス キューから次の I/O 要求パケットをデキューし、その IRP でドライバーの StartIo ルーチンを呼び出します。

構文

void IoStartNextPacketByKey(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] BOOLEAN        Cancelable,
  [in] ULONG          Key
);

パラメーター

[in] DeviceObject

IRP をデキューするデバイス オブジェクトへのポインター。

[in] Cancelable

デバイス キュー内の IRP を取り消すことができるかどうかを指定します。

[in] Key

キューから削除するエントリを決定する並べ替えキーを指定します。

戻り値

なし

解説

ターゲット デバイス オブジェクトのデバイス キューに現在 IRP がない場合、このルーチンは単に呼び出し元に制御を返します。

ドライバーが IoStartPacket を呼び出したときにキャンセル ルーチンへのポインターを渡した場合は、このルーチンの Cancelable パラメーターで TRUE を渡す必要があります。 Cancelable が TRUE の場合、I/O マネージャーはキャンセル スピン ロックを使用して、デバイス キューと現在の IRP を保護します。

StartIo ルーチンを持たないドライバーは、IoStartNextPacketByKey を呼び出すことができません。

IoStartNextPacketByKey の呼び出し元は、IRQL <= DISPATCH_LEVELで実行されている必要があります。 通常、このルーチンは、デバイス ドライバーの DpcForIsr または CustomDpc ルーチンから呼び出されます。どちらも IRQL = DISPATCH_LEVELで実行されます。

要件

要件
サポートされている最小のクライアント Windows 2000
対象プラットフォーム ユニバーサル
Header ntifs.h (Wdm.h、Ntddk.h、Ntifs.h を含みます)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket