Funzione FltCancelIo (fltkernel.h)
La routine FltCancelIo annulla un'operazione di I/O.
Sintassi
BOOLEAN FLTAPI FltCancelIo(
[in] PFLT_CALLBACK_DATA CallbackData
);
Parametri
[in] CallbackData
Puntatore alla struttura dei dati di callback (FLT_CALLBACK_DATA) per l'operazione di I/O.
Valore restituito
FltCancelIo restituisce TRUE se l'operazione di I/O è stata annullata correttamente. In caso contrario, restituisce FALSE.
Commenti
Un driver minifilter che avvia un'operazione di I/O chiamando una routine come FltPerformAsynchronousIo può annullare l'operazione chiamando FltCancelIo. L'operazione deve essere un'operazione di I/O basata su IRP, non deve essere attualmente pubblicata nella coda di lavoro del driver minifilter e non deve essere stata completata.
Se l'IRP ha una routine di annullamento, FltCancelIo imposta il bit di annullamento dell'IRP e chiama la routine annulla.
Se l'IRP non ha una routine di annullamento e quindi l'IRP non è annullabile, FltCancelIo imposta il bit di annullamento dell'IRP e restituisce FALSE. L'IRP deve essere annullato in un secondo momento quando diventa annullabile.
Se un driver minifilter che non ha avviato l'operazione di I/O basata su IRP chiama FltCancelIo, i risultati sono imprevedibili. Ad esempio, l'IRP potrebbe essere completato con un codice NTSTATUS riuscito anche se il relativo bit di annullamento è stato impostato.
FltCancelIo restituisce FALSE se una delle condizioni seguenti è true:
- L'operazione non è un'operazione di I/O basata su IRP.
- Non viene specificata alcuna routine di annullamento per l'operazione di I/O.
- L'operazione di I/O è già stata annullata.
Per specificare una routine di annullamento per un'operazione di I/O, chiamare FltSetCancelCompletion.
Per cancellare una routine di annullamento impostata per un'operazione di I/O, chiamare FltClearCancelCompletion.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (include FltKernel.h) |
Libreria | FltMgr.lib |
IRQL | <= DISPATCH_LEVEL |