All callback functions must perform fast in order not to block the whole system.
To prevent blocking the driver uses timeouts.
The timeout value is set globally as a parameter of AttachFilter method. If the user-mode process takes too much time to process the callback request and timeout expires, the driver cancels the request and reports error to the OS.
If some callback needs more time to complete the operation, it can call ResetTimeout method for this particular call.