IoStartNextPacketByKey 函式 (wdm.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。 如果 CancelableTRUE,I/O 管理員將會使用取消微調鎖定來保護裝置佇列和目前的 IRP。

沒有 StartIo 例程的驅動程式無法呼叫 IoStartNextPacketByKey

IoStartNextPacketByKey 的呼叫端必須在 IRQL <= DISPATCH_LEVEL執行。 通常,此例程是從設備驅動器的 DpcForIsrCustomDpc 例程呼叫,這兩者都是在 IRQL = DISPATCH_LEVEL上執行。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket