次の方法で共有


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
ターゲット プラットフォーム 万国
ヘッダー ntifs.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

関連項目

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket