PFLT_COMPLETED_ASYNC_IO_CALLBACK function pointer

A minifilter driver that initiates an asynchronous I/O operation can specify a routine of type PFLT_COMPLETED_ASYNC_IO_CALLBACK routine to be called when the operation is completed.

Syntax


typedef VOID ( *PFLT_COMPLETED_ASYNC_IO_CALLBACK)(
  _In_ PFLT_CALLBACK_DATA CallbackData,
  _In_ PFLT_CONTEXT       Context
);

Parameters

CallbackData [in]

Pointer to the callback data structure for the I/O operation.

Context [in]

Context pointer that the minifilter driver passed as a parameter to FltPerformAsynchronousIo, FltReadFile, or FltWriteFile.

Return value

None

Remarks

When a minifilter driver calls FltPerformAsynchronousIo, FltReadFile or FltWriteFile to initiate an asynchronous I/O operation, the minifilter driver can optionally specify a callback routine to be called when the I/O operation is completed. This is done by specifying a routine of type PFLT_COMPLETED_ASYNC_IO_CALLBACK for the CallbackRoutine parameter.

When the I/O operation is completed, this callback routine is called in an arbitrary thread context, at IRQL <= DISPATCH_LEVEL.

Because the PFLT_COMPLETED_ASYNC_IO_CALLBACK routine can be called at IRQL DISPATCH_LEVEL, it is subject to the following constraints:

  • It cannot safely call any kernel-mode routines that require a lower IRQL.

  • Any data structures used in this routine must be allocated from nonpaged pool.

  • It cannot be made pageable.

  • It cannot acquire resources, mutexes, or fast mutexes. However, it can acquire spin locks.

Requirements

Target platform

Header

Fltkernel.h (include Fltkernel.h)

IRQL

See Remarks section.

See also

FLT_CALLBACK_DATA
FltPerformAsynchronousIo
FltReadFile
FltWriteFile

 

 

Send comments about this topic to Microsoft

Show: