Funzione FltSetCancelCompletion (fltkernel.h)
Un driver minifilter chiama FltSetCancelCompletion per specificare una routine di annullamento da chiamare se un'operazione di I/O specificata viene annullata.
Sintassi
NTSTATUS FLTAPI FltSetCancelCompletion(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
);
Parametri
[in] CallbackData
Puntatore alla struttura dei dati di callback (FLT_CALLBACK_DATA) per l'operazione di I/O. L'operazione deve essere un'operazione di I/O basata su IRP e non deve essere un'operazione di I/O di paging. Per determinare se una determinata struttura di dati di callback rappresenta un'operazione di I/O basata su IRP, utilizzare la macro FLT_IS_IRP_OPERATION . Questo parametro è obbligatorio e non può essere NULL.
[in] CanceledCallback
Puntatore a una routine di annullamento fornita dal chiamante. Gestione filtri chiama questa routine se l'operazione di I/O rappresentata da CallbackData viene annullata.
Questa routine viene dichiarata come segue:
typedef VOID
(*PFLT_COMPLETE_CANCELED_CALLBACK) (
IN PFLT_CALLBACK_DATA CallbackData
);
CallbackData
Puntatore alla struttura FLT_CALLBACK_DATA per l'operazione di I/O.
Valore restituito
FltSetCancelCompletion restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato.
Commenti
FltSetCancelCompletion specifica una routine di annullamento per un'operazione di I/O basata su IRP da pubblicare in una coda di lavoro.
I driver minifilter in genere chiamano FltSetCancelCompletion per un'operazione di I/O immediatamente prima di chiamare FltQueueDeferredIoWorkItem per pubblicare l'operazione in una coda di lavoro.
Non chiamare FltSetCancelCompletion per qualsiasi operazione di I/O che deve essere inviata a una coda di dati di callback annullata usando le routine FltCbdqXxx .
Gestione filtri chiama la routine CanceledCallback senza tenere premuto il blocco spin di annullamento del sistema o eseguire qualsiasi altra sincronizzazione. Qualsiasi sincronizzazione necessaria deve essere fornita dal driver minifilter stesso.
Per annullare un'operazione di I/O, chiamare FltCancelIo.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (include Fltkernel.h) |
Libreria | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |