Condividi tramite


Funzione FltCbdqDisable (fltkernel.h)

FltCbdqDisable disabilita una coda di dati di callback del driver minifilter.

Sintassi

VOID FLTAPI FltCbdqDisable(
  [in, out] PFLT_CALLBACK_DATA_QUEUE Cbdq
);

Parametri

[in, out] Cbdq

Puntatore alla coda dei dati di callback.

Valore restituito

nessuno

Osservazioni

FltCbdqDisable disabilita una coda di dati di callback in modo che non sia possibile aggiungerli più elementi.

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 dati di callback rappresenta un'operazione di I/O basata su IRP, usare la macro FLT_IS_IRP_OPERATION .

Un driver minifilter chiama normalmente FltCbdqDisable durante il teardown dell'istanza o il driver minifilter scaricare. Dopo aver chiamato questa routine, il driver minifilter deve svuotare o svuotare la coda. Questa operazione può essere eseguita chiamando FltCbdqRemoveNextIo ripetutamente fino a quando non rimangono più elementi nella coda.

Per informazioni dettagliate su come creare una coda di dati di callback, vedere FltCbdqInitialize . Usare FltCbdqInsertIo per aggiungere una richiesta di I/O alla coda. Usare FltCbdqRemoveIo per rimuovere una richiesta di I/O specifica dalla coda o FltCbdqRemoveNextIo per rimuovere la richiesta di I/O disponibile successiva.

Per ripristinare la coda dopo la disabilitazione, chiamare FltCbdqEnable.

Se la coda è protetta da un blocco spin anziché da un oggetto mutex o una variabile di risorsa, il chiamante di FltCbdqDisable 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_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo