Condividi tramite


Funzione IoCsqRemoveIrp (wdm.h)

La routine IoCsqRemoveIrp rimuove un determinato IRP dalla coda.

Sintassi

PIRP IoCsqRemoveIrp(
  [in, out] PIO_CSQ             Csq,
  [in, out] PIO_CSQ_IRP_CONTEXT Context
);

Parametri

[in, out] Csq

Puntatore alla struttura IO_CSQ per la coda IRP annullata del driver. Questa struttura deve essere stata inizializzata da IoCsqInitialize o IoCsqInitializeEx.

[in, out] Context

Puntatore alla struttura IO_CSQ_IRP_CONTEXT che identifica l'IRP da rimuovere. La struttura IO_CSQ_IRP_CONTEXT viene inizializzata da IoCsqInsertIrp o IoCsqInsertIrpEx quando l'IRP viene inserito per la prima volta nella coda.

Valore restituito

Questa routine restituisce un puntatore all'IRP rimosso dalla coda oppure NULL se l'IRP è stato annullato.

Commenti

IoCsqRemoveIrp usa le routine di invio della coda per rimuovere l'IRP. Routine IoCsqRemoveIrp :

  1. Chiama la routine CsqAcquireLock della coda per bloccare la coda.
  2. Usa il parametro IrpContext per determinare quale IRP rimuovere e chiama la routine CsqRemoveIrp della coda per rimuovere tale IRP.
  3. Chiama la routine CsqReleaseLock della coda per sbloccare la coda.
I driver possono usare la routine IoCsqRemoveNextIrp per rimuovere un IRP che corrisponde a un criterio specifico. Per altre informazioni, vedere Cancel-Safe IRP Queues.For more information, see Cancel-Safe IRP Queues.

Si noti che le routine IoCsqXxx usano il membro DriverContext[3] dell'IRP per contenere le informazioni sul contesto IRP. I driver che usano queste routine per accodare i runtime di integrazione devono lasciare inutilizzati il membro.

I chiamanti di IoCsqRemoveIrp devono essere in esecuzione in un IRQL <= DISPATCH_LEVEL. Le routine di callback del driver devono funzionare correttamente in quel runtime irQL.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows XP e versioni successive di Windows. I driver che devono funzionare anche in Windows 2000 e Windows 98/Me possono invece collegarsi a Csq.lib per usare la routine.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (vedere la sezione Osservazioni)

Vedi anche

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitialize

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveNextIrp