Moved from: bobsql.com
I was approached to revisit the details of how Error Message 833 is detected and reported.
SQL Server has encountered %d occurrence(s) of I/O requests taking longer than %d seconds to complete on file [%ls] in database [%ls] (%d). The OS file handle is 0x%p. The offset of the latest long I/O is: %#016I64x.
Older versions of SQL Server leveraged the Lazy Writer and I/O completion callback routines to record vs report the error condition. Newer versions of SQL Server have refined the detection, now the logic is included as part of the Scheduler