[ofw] [PATCH] Cancel queued UAL_CEP_GET_REQ_CID IRPs when the CEP is destroyed

Sean Hefty sean.hefty at intel.com
Mon Jun 30 15:45:38 PDT 2008


>+    while( !IsListEmpty( &p_cep->irp_que ) )
>+    {
>+        LIST_ENTRY* p_list_entry;
>+        IRP* p_irp;
>+
>+        // get IRP
>+        p_list_entry = RemoveHeadList( &p_cep->irp_que );
>+        p_irp = (PIRP)CONTAINING_RECORD( p_list_entry, IRP,
>Tail.Overlay.ListEntry );
>+
>+        // complete GetConnectionReq IRP
>+#pragma warning(push, 3)
>+        IoSetCancelRoutine( p_irp, NULL );
>+#pragma warning(pop)
>+
>+        p_irp->IoStatus.Information = 0;
>+        p_irp->IoStatus.Status = STATUS_CANCELLED;
>+        IoCompleteRequest( p_irp, IO_NETWORK_INCREMENT );
>+    }

This looks like a generic operation.  Is this the only place in the code where a
queue of IRPs is canceled?  If not, can a generic routine be used instead?

- Sean




More information about the ofw mailing list