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 :
- Chiama la routine CsqAcquireLock della coda per bloccare la coda.
- 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.
- Se il valore restituito di CsqPeekNextIrp è diverso da NULL, IoCsqRemoveNextIrp chiama la routine CsqRemoveIrp della coda per rimuovere l'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 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) |