5.10  Receiving Error Notifications

In response to client-submitted IRPs, the transport driver notifies a TDI client of error conditions in the status codes that it returns. While this provides a client with request-specific errors, it would be difficult for the client to maintain a count of failed IRPs and apply internal logic to determine whether the underlying drivers are in a state that renders the client's subsequent network I/O operations unreliable.

To receive a notification of unexpected error conditions in an underlying driver or in the underlying physical medium, the client can register its ClientEventError handler with its underlying transport, as already described in Section 5.1. Then, if the transport itself or any lower driver that the transport depends on to carry out client communications over the network encounters such an error condition, the transport calls ClientEventError. This call notifies its client that network I/O on the client's open transport address is no longer reliable (or possible). Then, the client can notify its own higher level clients of the network failure and clean up all TDI-client-allocated resources for pending operations on the affected open transport address.