Skip to content

Latest commit

 

History

History
100 lines (64 loc) · 3.21 KB

nf-wdm-iostartpacket.md

File metadata and controls

100 lines (64 loc) · 3.21 KB
UID title description old-location tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NF:wdm.IoStartPacket
IoStartPacket function (wdm.h)
The IoStartPacket routine in wdm.h calls the driver's StartIo routine with an IRP or inserts the IRP into the device queue for the given device object.
kernel\iostartpacket.htm
kernel
04/30/2018
IoStartPacket function
IoStartPacket, IoStartPacket routine [Kernel-Mode Driver Architecture], k104_d27461b9-32fe-4d7b-853d-fd110fcdb644.xml, kernel.iostartpacket, wdm/IoStartPacket
wdm.h
Wdm.h, Ntddk.h, Ntifs.h
Universal
Available starting with Windows 2000.
NtosKrnl.lib
NtosKrnl.exe
<= DISPATCH_LEVEL (see Remarks section)
Windows
IoStartPacket
wdm/IoStartPacket
APIRef
kbSyntax
DllExport
NtosKrnl.exe
IoStartPacket

IoStartPacket function (wdm.h)

-description

The IoStartPacket routine calls the driver's StartIo routine with the given IRP or inserts the IRP into the device queue associated with the given device object if the device is already busy.

-parameters

-param DeviceObject [in]

Pointer to the target device object for the IRP.

-param Irp [in]

Pointer to the IRP to be processed.

-param Key [in, optional]

Pointer to a value that determines where to insert the packet into the device queue. If this is zero, the packet is inserted at the tail of the device queue.

-param CancelFunction [in, optional]

Specifies the entry point for a driver-supplied Cancel routine.

-remarks

If the driver is already busy processing a request for the target device object, then the packet is queued in the device queue. Otherwise, this routine calls the driver's StartIo routine with the specified IRP.

If a non-NULL CancelFunction pointer is supplied, it is set in the IRP so the driver's Cancel routine is called if the IRP is canceled before its completion.

Drivers that do not have a StartIo routine cannot call IoStartPacket.

Callers of IoStartPacket must be running at IRQL <= DISPATCH_LEVEL. Usually, this routine is called from a device driver's Dispatch routine at IRQL = PASSIVE_LEVEL.

-see-also

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey