Condividi tramite


Funzione IoCsqRemoveIrp (wdm.h)

La routine IoCsqRemoveIrp rimuove un particolare 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 viene inserito per la prima volta nella coda.

Valore restituito

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

Osservazioni

IoCsqRemoveIrp usa le routine dispatch 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 di CsqRemoveIrp della coda per rimuovere tale IRP.
  3. Chiama la routine di CsqReleaseLock della coda per sbloccare la coda.
I driver possono usare la routine IoCsqRemoveNextIrp per rimuovere un IRP corrispondente a un criterio specifico. Per altre informazioni, vedere Cancel-Safe code IRP.

Si noti che routine IoCsqXxx utilizzano DriverContext[3] membro 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 di integrazione.

Fabbisogno

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)

Vedere anche

CsqAcquireLock

CsqCompleteCanceledIrp

csqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitialize

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveNextIrp