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 non sicure. 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 di CsqPeekNextIrp del driver. Per altre informazioni, vedere la sezione Osservazioni seguente.
Valore restituito
Questa routine restituisce un puntatore all'IRP corrispondente successivo nella coda o NULL se non sono disponibili altri runtime di integrazione. La routine restituisce solo i runtime di integrazione che non sono ancora stati annullati.
Osservazioni
IoCsqRemoveNextIrp usa le routine di invio della coda per rimuovere l'IRP. Routine IoCsqRemoveNextIrp:
- Chiama la routine csqAcquireLock della coda per bloccare la coda.
- Chiama la routine di 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 un provider di risorse IRP corrispondente.
- Se il valore restituito di CsqPeekNextIrp non èNULL, IoCsqRemoveNextIrp chiama la routine CsqRemoveIrp della coda per rimuovere l'IRP.
- Chiama la routine di CsqReleaseLock della coda per sbloccare la coda.
Si noti che routine IoCsqXxx utilizzano il DriverContextmembro [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 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) |