WaitForMultipleObjects Question

I am writing a driver in which I posts a number of different IOCTL calls
,using overlapped I/O, and creates a thread to wait on the completion of
the I/O using WaitForMultipleObjects ( Each overlapped structure has a
handle to a different event object ). The problem is that is some cases,
there are multiple I/Os completed by the time the thread is scheduled to
run and WaitForMultipleObjects returns the lowest numeric value wait object
that is set, not the earliest ( in chronological order ) wait event. Is
there any way to force a synchronization mechanism to return with the
oldest event so that the order the driver completes the IRPs is the order
that the application gets them?

Thanks in advance.