FilterSendMessage returns ERROR_SEM_TIMEOUT

My filter driver and user-mode application is normally working OK. However,
under very high load conditions, possibly when the user-mode application is
not being very responsive, I occasionally see calls to FilterSendMessage
returning status 121 - ERROR_SEM_TIMEOUT.

Can anyone (I guess with source access to Windows) tell me what conditions
are likely to cause this, and what IS the timeout (are we talking seconds or
minutes here?)

Here’s a little more detail…

The filter driver receives the data in the message callback function given
to FltCreateCommunicationPort(), then (for the type of packet this is)
copies the buffer for another thread to use, wakes up that thread using
KeSetEvent(), then waits till the thread has dealt with it using
KeWaitForSingleObject(), specifying a gross timeout of 60 seconds. IE, the
message callback function may stall for that time.

Could this explain the semaphore timeout?

Hope someone clued-up can shed light on this 'cos I’m in the dark!

Thanks,

John