Condividi tramite


Funzione IoCsqRemoveNextIrp (wdm.h)

La routine IoCsqRemoveNextIrp rimuove il successivo IRP corrispondente nella coda.

Sintassi

PIRP IoCsqRemoveNextIrp(
  [in, out]      PIO_CSQ Csq,
  [in, optional] PVOID   PeekContext
);

Parametri

[in, out] Csq

Puntatore alla tabella dispatch del driver per le code IRP annullate. La tabella dispatch deve essere inizializzata da IoCsqInitialize.

[in, optional] PeekContext

Puntatore a un valore di contesto definito dal driver. IoCsqRemoveNextIrp passa questo parametro alla routine CsqPeekNextIrp del driver. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Valore restituito

Questa routine restituisce un puntatore all'IRP corrispondente successivo nella coda oppure NULL se non sono disponibili altri provider di integrazione. La routine restituisce solo irP che non sono ancora stati annullati.

Commenti

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

  1. Chiama la routine CsqAcquireLock della coda per bloccare la coda.
  2. Chiama la routine CsqPeekNextIrp della coda per trovare il successivo IRP corrispondente nella coda. IoCsqRemoveNextIrp passa il valore del parametro PeekContext come parametro PeekContext di CsqPeekNextIrp. CsqPeekNextIrp restituisce un puntatore all'IRP corrispondente successivo oppure NULL se non è presente alcun provider di risorse IRP corrispondente.
  3. Se il valore restituito di CsqPeekNextIrp è diverso da NULL, IoCsqRemoveNextIrp chiama la routine CsqRemoveIrp della coda per rimuovere l'IRP.
  4. Chiama la routine CsqReleaseLock della coda per sbloccare la coda.
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 IoCsqRemoveNextIrp 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

IoCsqInitialize

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp