When the IOS first loads a device driver, whether at boot time or later, it sends a SYS_DYNAMIC_DEVICE_INIT message to the driver. In response to this message, the driver is expected to register with the I/O supervisor. Registered device drivers receive notifications of certain events and configuration changes.
During registration, every driver must provide an entry point which the IOS can call to report asynchronous events. Asynchronous events include such things as device arrival, device departure, and time-out requests. If a driver also wishes to process I/O requests for a given device, it must also provide an I/O request entry point.