Funzione FltCbdqRemoveNextIo (fltkernel.h)

FltCbdqRemoveNextIo rimuove l'elemento corrispondente successivo in una coda di dati di callback del driver minifilter.

Sintassi

PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveNextIo(
  [in, out]      PFLT_CALLBACK_DATA_QUEUE Cbdq,
  [in, optional] PVOID                    PeekContext
);

Parametri

[in, out] Cbdq

Puntatore a una coda di dati di callback annullata. Questa coda deve essere stata inizializzata chiamando FltCbdqInitialize.

[in, optional] PeekContext

Puntatore a informazioni definite dal chiamante che identifica l'elemento corrispondente. Questo parametro è facoltativo e può essere NULL.

Valore restituito

FltCbdqRemoveNextIo restituisce un puntatore alla struttura dei dati di callback (FLT_CALLBACK_DATA) per l'elemento rimosso dalla coda o NULL se non sono stati trovati elementi corrispondenti. FltCbdqRemoveNextIo restituisce solo gli elementi per le operazioni di I/O che non sono ancora state annullate.

Commenti

FltCbdqRemoveNextIo rimuove l'elemento corrispondente successivo da una coda di dati di callback del driver minifilter.

I driver minifilter possono usare le routine FltCbdqXxx per implementare una coda di dati di callback per le operazioni di I/O basate su IRP. Usando queste routine, i driver minifilter possono rendere le code annullate; il sistema gestisce in modo trasparente l'annullamento di I/O per i driver minifilter.

Le routine FltCbdqXxx possono essere usate solo per le operazioni di I/O basate su IRP. Per determinare se una determinata struttura di callback (FLT_CALLBACK_DATA) rappresenta un'operazione di I/O basata su IRP, usare la macro FLT_IS_IRP_OPERATION .

Una coda di dati di callback viene inizializzata da FltCbdqInitialize. FltCbdqRemoveNextIo usa le routine fornite nella tabella di invio della coda per bloccare la coda e rimuovere l'elemento corrispondente successivo dalla coda. L'operazione di rimozione viene eseguita dalla routine di callback del driver minifilter CbdqRemoveIo .

FltCbdqRemoveNextIo usa la routine di callback cbdqPeekNextIo della coda per analizzare la coda per gli elementi corrispondenti. Il parametro PeekContext viene passato alla routine di callback CbdqPeekNextIo per eseguire il ciclo attraverso elementi corrispondenti. Il significato di PeekContext e i criteri per un elemento che corrispondono a un determinato PeekContext dipendono interamente dal driver minifilter.

Se la coda è protetta da un blocco spin, anziché un oggetto mutex o una variabile di risorsa, il chiamante di FltCbdqRemoveNextIo può essere eseguito in IRQL <= DISPATCH_LEVEL. Se viene usato un mutex o una risorsa, il chiamante deve essere in esecuzione in IRQL <= APC_LEVEL.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (includere Fltkernel.h)
IRQL Vedere La sezione Osservazioni.

Vedi anche

FLT_CALLBACK_DATA

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqDisable

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo