共用方式為


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。 如果 可取消 為 TRUE,I/O 管理員會使用取消微調鎖定來保護裝置佇列和目前的 IRP。

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

IoStartNextPacketByKey 的呼叫端必須在 IRQL <= DISPATCH_LEVEL 執行。 通常,此例程是從設備驅動器的 DpcForIsrCustomDpc 例程呼叫,兩者都是在 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