Skip to content

Latest commit

 

History

History
88 lines (62 loc) · 3.31 KB

nf-ks-ksaddirptocancelablequeue.md

File metadata and controls

88 lines (62 loc) · 3.31 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:ks.KsAddIrpToCancelableQueue
KsAddIrpToCancelableQueue function (ks.h)
The KsAddIrpToCancelableQueue function adds an IRP to a queue of cancelable IRPs, thus allowing the IRP to be canceled. If the IRP had been previously set to a canceled state, the KsAddIrpToCancelableQueue function completes the canceling of that IRP.
stream\ksaddirptocancelablequeue.htm
stream
04/23/2018
KsAddIrpToCancelableQueue function
KsAddIrpToCancelableQueue, KsAddIrpToCancelableQueue function [Streaming Media Devices], ks/KsAddIrpToCancelableQueue, ksfunc_8a3caaa5-29ca-4c55-a3f6-8214808954b3.xml, stream.ksaddirptocancelablequeue
ks.h
Ks.h
Universal
Ks.lib
Windows
KsAddIrpToCancelableQueue
ks/KsAddIrpToCancelableQueue
APIRef
kbSyntax
LibDef
Ks.lib
Ks.dll
KsAddIrpToCancelableQueue

KsAddIrpToCancelableQueue function

-description

The KsAddIrpToCancelableQueue function adds an IRP to a queue of cancelable IRPs, thus allowing the IRP to be canceled. If the IRP had been previously set to a canceled state, the KsAddIrpToCancelableQueue function completes the canceling of that IRP.

-parameters

-param QueueHead [in, out]

Specifies the driver-allocated storage for the head of the queue on which to add the IRP.

-param SpinLock [in]

Points to driver's spin lock for queue access to the queue specified at QueueHead. A copy of this pointer is kept in the IRP's KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) for use by the cancel routine, if necessary.

-param Irp [in]

Specifies the IRP to add to the queue specified at QueueHead.

-param ListLocation [in]

Indicates whether this IRP should be placed at the beginning or end of the queue. This value must be KsListEntryTail or KsListEntryHead.

-param DriverCancel [in, optional]

Optional parameter that specifies a driver-supplied cancel routine to use. If this is NULL, the standard KsCancelRoutine is used.

-returns

None

-remarks

If the IRP has been put into a cancel state when this routine is called, KsAddIrpToCancelableQueue will immediately call the cancel routine specified at DriverCancel, or if no routine was specified at DriverCancel the default streaming cancel routine is called.

The KsAddIrpToCancelableQueue function allows IRPs to be canceled even before being placed on a cancel list, or when being moved from one list to another. This function can be called at IRQ level DISPATCH_LEVEL or lower unless the driver-allocated queue and all entries in the queue are system-resident or allocated from resident storage.

The function does not use the cancel spin lock to add items to the list. Access to the list is synchronized using the provided spin lock and relies on atomic operations on Irp->CancelRoutine.