Condividi tramite


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 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.

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

Vedi anche

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltClearCancelCompletion

FltPerformAsynchronousIo

FltReadFile

FltSetCancelCompletion

FltWriteFile