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:
- Chiama la routine csqAcquireLock della coda per bloccare la coda.
- Usa il parametro IrpContext per determinare quale IRP rimuovere e chiama la routine di CsqRemoveIrp della coda per rimuovere tale IRP.
- Chiama la routine di CsqReleaseLock della coda per sbloccare la coda.
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) |