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 |