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

Vedi anche

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltCancelIo

FltClearCancelCompletion

FltQueueDeferredIoWorkItem