PFLT_COMPLETED_ASYNC_IO_CALLBACK callback function (fltkernel.h)
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
PFLT_COMPLETED_ASYNC_IO_CALLBACK PfltCompletedAsyncIoCallback;
void PfltCompletedAsyncIoCallback(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_CONTEXT Context
)
{...}
Parameters
[in] CallbackData
Pointer to the callback data structure for the I/O operation.
[in] Context
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
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | fltkernel.h (include Fltkernel.h) |
IRQL | See Remarks section. |