SoundFreePendingIrps

VOID
    SoundFreePendingIrps(
        PLIST_ENTRY
QueueHead,
        PFILE_OBJECT
FileObject
        );

The SoundFreePendingIrps function traverses a queue of IRPs. For each IRP associated with the specified file object, the function completes the interrupt request and removes the IRP from the queue.

Parameters
QueueHead
Pointer to the head of a queue of IRPs.
FileObject
Pointer to a file object.
Return Value

None.

Comments

The function completes the interrupt request by calling IoCompleteRequest, with a priority boost argument of IO_NO_INCREMENT.

SoundFreePendingIrps only works for IRP queues created by calling SoundAddIrpToCancellableQ. It makes each IRP noncancelable before calling IoCompleteRequest.

Generally, drivers using soundlib.lib do not need to manipulate IRP queues because DPCs in soundlib.lib handle IRP completion. For drivers that do manipulate IRP queues, the SoundAddIrpToCancellableQ, SoundRemoveFromCancellableQ, SoundMoveCancellableQueue, SoundFreePendingIrps, and SoundFreeQ functions are provided.