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